Lines Matching +full:reset +full:- +full:time +full:- +full:sec

1 // SPDX-License-Identifier: GPL-2.0-only
9 #include <linux/time.h>
46 * fnic_trace_get_buf - Give buffer pointer to user to fill up trace information
93 * fnic_get_trace_data - Copy trace buffer to a memory file
129 sprint_symbol(str, tbp->fnaddr.low); in fnic_get_trace_data()
130 jiffies_to_timespec64(tbp->timestamp.low, &val); in fnic_get_trace_data()
132 sprint_symbol(str, tbp->fnaddr.val); in fnic_get_trace_data()
133 jiffies_to_timespec64(tbp->timestamp.val, &val); in fnic_get_trace_data()
139 len += scnprintf(fnic_dbgfs_prt->buffer + len, in fnic_get_trace_data()
140 (trace_max_pages * PAGE_SIZE * 3) - len, in fnic_get_trace_data()
141 "%16llu.%09lu %-50s %8x %8x %16llx %16llx " in fnic_get_trace_data()
143 val.tv_nsec, str, tbp->host_no, tbp->tag, in fnic_get_trace_data()
144 tbp->data[0], tbp->data[1], tbp->data[2], in fnic_get_trace_data()
145 tbp->data[3], tbp->data[4]); in fnic_get_trace_data()
151 if (rd_idx > (fnic_max_trace_entries-1)) in fnic_get_trace_data()
171 sprint_symbol(str, tbp->fnaddr.low); in fnic_get_trace_data()
172 jiffies_to_timespec64(tbp->timestamp.low, &val); in fnic_get_trace_data()
174 sprint_symbol(str, tbp->fnaddr.val); in fnic_get_trace_data()
175 jiffies_to_timespec64(tbp->timestamp.val, &val); in fnic_get_trace_data()
181 len += scnprintf(fnic_dbgfs_prt->buffer + len, in fnic_get_trace_data()
182 (trace_max_pages * PAGE_SIZE * 3) - len, in fnic_get_trace_data()
183 "%16llu.%09lu %-50s %8x %8x %16llx %16llx " in fnic_get_trace_data()
185 val.tv_nsec, str, tbp->host_no, tbp->tag, in fnic_get_trace_data()
186 tbp->data[0], tbp->data[1], tbp->data[2], in fnic_get_trace_data()
187 tbp->data[3], tbp->data[4]); in fnic_get_trace_data()
202 * fnic_get_stats_data - Copy fnic stats buffer to a memory file
217 int buf_size = debug->buf_size; in fnic_get_stats_data()
222 len = scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
223 "------------------------------------------\n" in fnic_get_stats_data()
225 "------------------------------------------\n"); in fnic_get_stats_data()
227 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
228 "Current time : [%lld:%ld]\n" in fnic_get_stats_data()
229 "Last stats reset time: [%lld:%09ld]\n" in fnic_get_stats_data()
230 "Last stats read time: [%lld:%ld]\n" in fnic_get_stats_data()
231 "delta since last reset: [%lld:%ld]\n" in fnic_get_stats_data()
234 (s64)stats->stats_timestamps.last_reset_time.tv_sec, in fnic_get_stats_data()
235 stats->stats_timestamps.last_reset_time.tv_nsec, in fnic_get_stats_data()
236 (s64)stats->stats_timestamps.last_read_time.tv_sec, in fnic_get_stats_data()
237 stats->stats_timestamps.last_read_time.tv_nsec, in fnic_get_stats_data()
238 (s64)timespec64_sub(val1, stats->stats_timestamps.last_reset_time).tv_sec, in fnic_get_stats_data()
239 timespec64_sub(val1, stats->stats_timestamps.last_reset_time).tv_nsec, in fnic_get_stats_data()
240 (s64)timespec64_sub(val1, stats->stats_timestamps.last_read_time).tv_sec, in fnic_get_stats_data()
241 timespec64_sub(val1, stats->stats_timestamps.last_read_time).tv_nsec); in fnic_get_stats_data()
243 stats->stats_timestamps.last_read_time = val1; in fnic_get_stats_data()
245 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
246 "------------------------------------------\n" in fnic_get_stats_data()
248 "------------------------------------------\n"); in fnic_get_stats_data()
249 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
259 " 10 ms - 100 ms : %lld\n" in fnic_get_stats_data()
260 " 100 ms - 500 ms : %lld\n" in fnic_get_stats_data()
261 " 500 ms - 5 sec: %lld\n" in fnic_get_stats_data()
262 " 5 sec - 10 sec: %lld\n" in fnic_get_stats_data()
263 " 10 sec - 30 sec: %lld\n" in fnic_get_stats_data()
264 " > 30 sec: %lld\n", in fnic_get_stats_data()
265 (u64)atomic64_read(&stats->io_stats.active_ios), in fnic_get_stats_data()
266 (u64)atomic64_read(&stats->io_stats.max_active_ios), in fnic_get_stats_data()
267 (u64)atomic64_read(&stats->io_stats.num_ios), in fnic_get_stats_data()
268 (u64)atomic64_read(&stats->io_stats.io_completions), in fnic_get_stats_data()
269 (u64)atomic64_read(&stats->io_stats.io_failures), in fnic_get_stats_data()
270 (u64)atomic64_read(&stats->io_stats.io_not_found), in fnic_get_stats_data()
271 (u64)atomic64_read(&stats->io_stats.alloc_failures), in fnic_get_stats_data()
272 (u64)atomic64_read(&stats->io_stats.ioreq_null), in fnic_get_stats_data()
273 (u64)atomic64_read(&stats->io_stats.sc_null), in fnic_get_stats_data()
274 (u64)atomic64_read(&stats->io_stats.io_btw_0_to_10_msec), in fnic_get_stats_data()
275 (u64)atomic64_read(&stats->io_stats.io_btw_10_to_100_msec), in fnic_get_stats_data()
276 (u64)atomic64_read(&stats->io_stats.io_btw_100_to_500_msec), in fnic_get_stats_data()
277 (u64)atomic64_read(&stats->io_stats.io_btw_500_to_5000_msec), in fnic_get_stats_data()
278 (u64)atomic64_read(&stats->io_stats.io_btw_5000_to_10000_msec), in fnic_get_stats_data()
279 (u64)atomic64_read(&stats->io_stats.io_btw_10000_to_30000_msec), in fnic_get_stats_data()
280 (u64)atomic64_read(&stats->io_stats.io_greater_than_30000_msec)); in fnic_get_stats_data()
282 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
283 "------------------------------------------\n" in fnic_get_stats_data()
285 "------------------------------------------\n"); in fnic_get_stats_data()
288 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
289 "Q:%d -> %lld\n", i, (u64)atomic64_read(&stats->io_stats.ios[i])); in fnic_get_stats_data()
292 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
293 "\nCurrent Max IO time : %lld\n", in fnic_get_stats_data()
294 (u64)atomic64_read(&stats->io_stats.current_max_io_time)); in fnic_get_stats_data()
296 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
297 "\n------------------------------------------\n" in fnic_get_stats_data()
299 "------------------------------------------\n"); in fnic_get_stats_data()
301 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
309 " < 6 sec : %lld\n" in fnic_get_stats_data()
310 " 6 sec - 20 sec : %lld\n" in fnic_get_stats_data()
311 " 20 sec - 30 sec : %lld\n" in fnic_get_stats_data()
312 " 30 sec - 40 sec : %lld\n" in fnic_get_stats_data()
313 " 40 sec - 50 sec : %lld\n" in fnic_get_stats_data()
314 " 50 sec - 60 sec : %lld\n" in fnic_get_stats_data()
315 " > 60 sec: %lld\n", in fnic_get_stats_data()
317 (u64)atomic64_read(&stats->abts_stats.aborts), in fnic_get_stats_data()
318 (u64)atomic64_read(&stats->abts_stats.abort_failures), in fnic_get_stats_data()
319 (u64)atomic64_read(&stats->abts_stats.abort_drv_timeouts), in fnic_get_stats_data()
320 (u64)atomic64_read(&stats->abts_stats.abort_fw_timeouts), in fnic_get_stats_data()
321 (u64)atomic64_read(&stats->abts_stats.abort_io_not_found), in fnic_get_stats_data()
322 (u64)atomic64_read(&stats->abts_stats.abort_issued_btw_0_to_6_sec), in fnic_get_stats_data()
323 (u64)atomic64_read(&stats->abts_stats.abort_issued_btw_6_to_20_sec), in fnic_get_stats_data()
324 (u64)atomic64_read(&stats->abts_stats.abort_issued_btw_20_to_30_sec), in fnic_get_stats_data()
325 (u64)atomic64_read(&stats->abts_stats.abort_issued_btw_30_to_40_sec), in fnic_get_stats_data()
326 (u64)atomic64_read(&stats->abts_stats.abort_issued_btw_40_to_50_sec), in fnic_get_stats_data()
327 (u64)atomic64_read(&stats->abts_stats.abort_issued_btw_50_to_60_sec), in fnic_get_stats_data()
328 (u64)atomic64_read(&stats->abts_stats.abort_issued_greater_than_60_sec)); in fnic_get_stats_data()
330 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
331 "\n------------------------------------------\n" in fnic_get_stats_data()
333 "------------------------------------------\n"); in fnic_get_stats_data()
335 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
342 (u64)atomic64_read(&stats->term_stats.terminates), in fnic_get_stats_data()
343 (u64)atomic64_read(&stats->term_stats.max_terminates), in fnic_get_stats_data()
344 (u64)atomic64_read(&stats->term_stats.terminate_drv_timeouts), in fnic_get_stats_data()
345 (u64)atomic64_read(&stats->term_stats.terminate_fw_timeouts), in fnic_get_stats_data()
346 (u64)atomic64_read(&stats->term_stats.terminate_io_not_found), in fnic_get_stats_data()
347 (u64)atomic64_read(&stats->term_stats.terminate_failures)); in fnic_get_stats_data()
349 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
350 "\n------------------------------------------\n" in fnic_get_stats_data()
352 "------------------------------------------\n"); in fnic_get_stats_data()
354 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
356 "Number of Device Reset Failures: %lld\n" in fnic_get_stats_data()
357 "Number of Device Reset Aborts: %lld\n" in fnic_get_stats_data()
358 "Number of Device Reset Timeouts: %lld\n" in fnic_get_stats_data()
359 "Number of Device Reset Terminates: %lld\n" in fnic_get_stats_data()
361 "Number of FW Reset Completions: %lld\n" in fnic_get_stats_data()
362 "Number of FW Reset Failures: %lld\n" in fnic_get_stats_data()
363 "Number of Fnic Reset: %lld\n" in fnic_get_stats_data()
364 "Number of Fnic Reset Completions: %lld\n" in fnic_get_stats_data()
365 "Number of Fnic Reset Failures: %lld\n", in fnic_get_stats_data()
366 (u64)atomic64_read(&stats->reset_stats.device_resets), in fnic_get_stats_data()
367 (u64)atomic64_read(&stats->reset_stats.device_reset_failures), in fnic_get_stats_data()
368 (u64)atomic64_read(&stats->reset_stats.device_reset_aborts), in fnic_get_stats_data()
369 (u64)atomic64_read(&stats->reset_stats.device_reset_timeouts), in fnic_get_stats_data()
371 &stats->reset_stats.device_reset_terminates), in fnic_get_stats_data()
372 (u64)atomic64_read(&stats->reset_stats.fw_resets), in fnic_get_stats_data()
373 (u64)atomic64_read(&stats->reset_stats.fw_reset_completions), in fnic_get_stats_data()
374 (u64)atomic64_read(&stats->reset_stats.fw_reset_failures), in fnic_get_stats_data()
375 (u64)atomic64_read(&stats->reset_stats.fnic_resets), in fnic_get_stats_data()
377 &stats->reset_stats.fnic_reset_completions), in fnic_get_stats_data()
378 (u64)atomic64_read(&stats->reset_stats.fnic_reset_failures)); in fnic_get_stats_data()
380 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
381 "\n------------------------------------------\n" in fnic_get_stats_data()
383 "------------------------------------------\n"); in fnic_get_stats_data()
385 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
390 (u64)atomic64_read(&stats->fw_stats.active_fw_reqs), in fnic_get_stats_data()
391 (u64)atomic64_read(&stats->fw_stats.max_fw_reqs), in fnic_get_stats_data()
392 (u64)atomic64_read(&stats->fw_stats.fw_out_of_resources), in fnic_get_stats_data()
393 (u64)atomic64_read(&stats->fw_stats.io_fw_errs)); in fnic_get_stats_data()
395 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
396 "\n------------------------------------------\n" in fnic_get_stats_data()
398 "------------------------------------------\n"); in fnic_get_stats_data()
400 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
405 (u64)atomic64_read(&stats->vlan_stats.vlan_disc_reqs), in fnic_get_stats_data()
406 (u64)atomic64_read(&stats->vlan_stats.resp_withno_vlanID), in fnic_get_stats_data()
407 (u64)atomic64_read(&stats->vlan_stats.sol_expiry_count), in fnic_get_stats_data()
408 (u64)atomic64_read(&stats->vlan_stats.flogi_rejects)); in fnic_get_stats_data()
410 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
411 "\n------------------------------------------\n" in fnic_get_stats_data()
413 "------------------------------------------\n"); in fnic_get_stats_data()
415 jiffies_to_timespec64(stats->misc_stats.last_isr_time, &val1); in fnic_get_stats_data()
416 jiffies_to_timespec64(stats->misc_stats.last_ack_time, &val2); in fnic_get_stats_data()
418 len += scnprintf(debug->debug_buffer + len, buf_size - len, in fnic_get_stats_data()
419 "Last ISR time: %llu (%8llu.%09lu)\n" in fnic_get_stats_data()
420 "Last ACK time: %llu (%8llu.%09lu)\n" in fnic_get_stats_data()
422 "Max ISR time (ms) (0 denotes < 1 ms): %llu\n" in fnic_get_stats_data()
432 "Number of Copy WQ Alloc Failures for Device Reset: %lld\n" in fnic_get_stats_data()
440 (u64)stats->misc_stats.last_isr_time, in fnic_get_stats_data()
442 (u64)stats->misc_stats.last_ack_time, in fnic_get_stats_data()
444 (u64)atomic64_read(&stats->misc_stats.max_isr_jiffies), in fnic_get_stats_data()
445 (u64)atomic64_read(&stats->misc_stats.max_isr_time_ms), in fnic_get_stats_data()
446 (u64)atomic64_read(&stats->misc_stats.corr_work_done), in fnic_get_stats_data()
447 (u64)atomic64_read(&stats->misc_stats.isr_count), in fnic_get_stats_data()
448 (u64)atomic64_read(&stats->misc_stats.max_cq_entries), in fnic_get_stats_data()
449 (u64)atomic64_read(&stats->misc_stats.ack_index_out_of_range), in fnic_get_stats_data()
450 (u64)atomic64_read(&stats->misc_stats.data_count_mismatch), in fnic_get_stats_data()
451 (u64)atomic64_read(&stats->misc_stats.fcpio_timeout), in fnic_get_stats_data()
452 (u64)atomic64_read(&stats->misc_stats.fcpio_aborted), in fnic_get_stats_data()
453 (u64)atomic64_read(&stats->misc_stats.sgl_invalid), in fnic_get_stats_data()
455 &stats->misc_stats.abts_cpwq_alloc_failures), in fnic_get_stats_data()
457 &stats->misc_stats.devrst_cpwq_alloc_failures), in fnic_get_stats_data()
458 (u64)atomic64_read(&stats->misc_stats.io_cpwq_alloc_failures), in fnic_get_stats_data()
459 (u64)atomic64_read(&stats->misc_stats.no_icmnd_itmf_cmpls), in fnic_get_stats_data()
460 (u64)atomic64_read(&stats->misc_stats.check_condition), in fnic_get_stats_data()
461 (u64)atomic64_read(&stats->misc_stats.queue_fulls), in fnic_get_stats_data()
462 (u64)atomic64_read(&stats->misc_stats.tport_not_ready), in fnic_get_stats_data()
463 (u64)atomic64_read(&stats->misc_stats.frame_errors), in fnic_get_stats_data()
464 (u64)atomic64_read(&stats->misc_stats.port_speed_in_mbps)); in fnic_get_stats_data()
472 struct fnic_iport_s *iport = &fnic->iport; in fnic_get_debug_info()
473 int buf_size = info->buf_size; in fnic_get_debug_info()
474 int len = info->buffer_len; in fnic_get_debug_info()
478 len += snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
479 "------------------------------------------\n" in fnic_get_debug_info()
481 "------------------------------------------\n"); in fnic_get_debug_info()
482 len += snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
484 fnic->name, fnic->fnic_num, in fnic_get_debug_info()
485 fnic_role_to_str(fnic->role), in fnic_get_debug_info()
486 fnic_state_to_str(fnic->state)); in fnic_get_debug_info()
488 snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
490 iport->state, iport->flags, iport->vlan_id, iport->fcid); in fnic_get_debug_info()
492 snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
494 iport->usefip, iport->fip.state, iport->fip.flogi_retry); in fnic_get_debug_info()
496 snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
498 iport->fpma[5], iport->fpma[4], iport->fpma[3], in fnic_get_debug_info()
499 iport->fpma[2], iport->fpma[1], iport->fpma[0]); in fnic_get_debug_info()
501 snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
503 iport->fcfmac[5], iport->fcfmac[4], iport->fcfmac[3], in fnic_get_debug_info()
504 iport->fcfmac[2], iport->fcfmac[1], iport->fcfmac[0]); in fnic_get_debug_info()
506 snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
508 iport->fabric.state, iport->fabric.flags, in fnic_get_debug_info()
509 iport->fabric.retry_counter, iport->e_d_tov, in fnic_get_debug_info()
510 iport->r_a_tov); in fnic_get_debug_info()
512 spin_lock_irqsave(&fnic->fnic_lock, flags); in fnic_get_debug_info()
513 list_for_each_entry_safe(tport, next, &iport->tport_list, links) { in fnic_get_debug_info()
514 len += snprintf(info->debug_buffer + len, buf_size - len, in fnic_get_debug_info()
516 tport->fcid, tport->state, tport->flags, in fnic_get_debug_info()
517 atomic_read(&tport->in_flight), in fnic_get_debug_info()
518 tport->retry_counter); in fnic_get_debug_info()
520 spin_unlock_irqrestore(&fnic->fnic_lock, flags); in fnic_get_debug_info()
525 * fnic_trace_buf_init - Initialize fnic trace buffer logging facility
546 err = -ENOMEM; in fnic_trace_buf_init()
559 err = -ENOMEM; in fnic_trace_buf_init()
583 * fnic_trace_free - Free memory of fnic trace data structures.
601 * fnic_fc_ctlr_trace_buf_init -
626 err = -ENOMEM; in fnic_fc_trace_init()
640 err = -ENOMEM; in fnic_fc_trace_init()
664 * Fnic_fc_ctlr_trace_free - Free memory of fnic_fc_ctlr trace data structures.
696 * It will return 0 for success or -1 for failure
733 ktime_get_real_ts64(&fc_buf->time_stamp); in fnic_fc_trace_set_data()
734 fc_buf->host_no = host_no; in fnic_fc_trace_set_data()
735 fc_buf->frame_type = frame_type; in fnic_fc_trace_set_data()
749 (u8)(FC_TRC_SIZE_BYTES - FC_TRC_HEADER_SIZE in fnic_fc_trace_set_data()
750 - eth_fcoe_hdr_len))); in fnic_fc_trace_set_data()
754 (u8)(FC_TRC_SIZE_BYTES - FC_TRC_HEADER_SIZE))); in fnic_fc_trace_set_data()
758 fc_buf->frame_len = fc_trc_frame_len; in fnic_fc_trace_set_data()
795 len += scnprintf(fnic_dbgfs_prt->buffer + len, in fnic_fc_trace_get_data()
796 (fnic_fc_trace_max_pages * PAGE_SIZE * 3) - len, in fnic_fc_trace_get_data()
797 "Time Stamp (UTC)\t\t" in fnic_fc_trace_get_data()
815 len += scnprintf(fnic_dbgfs_prt->buffer + len, in fnic_fc_trace_get_data()
817 - len, "%02x", fc_trace[j] & 0xff); in fnic_fc_trace_get_data()
819 len += scnprintf(fnic_dbgfs_prt->buffer + len, in fnic_fc_trace_get_data()
820 (fnic_fc_trace_max_pages * PAGE_SIZE * 3) - len, in fnic_fc_trace_get_data()
824 if (rd_idx > (fc_trace_max_entries - 1)) in fnic_fc_trace_get_data()
849 int ethhdr_len = sizeof(struct ethhdr) - 1; in copy_and_format_trace_data()
855 tdata->frame_type = tdata->frame_type & 0x7F; in copy_and_format_trace_data()
859 len += scnprintf(fnic_dbgfs_prt->buffer + len, max_size - len, in copy_and_format_trace_data()
861 &tdata->time_stamp.tv_sec, tdata->time_stamp.tv_nsec, in copy_and_format_trace_data()
862 tdata->host_no, tdata->frame_type, tdata->frame_len); in copy_and_format_trace_data()
866 for (j = 0; j < min_t(u8, tdata->frame_len, in copy_and_format_trace_data()
867 (u8)(FC_TRC_SIZE_BYTES - FC_TRC_HEADER_SIZE)); j++) { in copy_and_format_trace_data()
868 if (tdata->frame_type == FNIC_FC_LE) { in copy_and_format_trace_data()
869 len += scnprintf(fnic_dbgfs_prt->buffer + len, in copy_and_format_trace_data()
870 max_size - len, "%c", fc_trace[j]); in copy_and_format_trace_data()
872 len += scnprintf(fnic_dbgfs_prt->buffer + len, in copy_and_format_trace_data()
873 max_size - len, "%02x", fc_trace[j] & 0xff); in copy_and_format_trace_data()
874 len += scnprintf(fnic_dbgfs_prt->buffer + len, in copy_and_format_trace_data()
875 max_size - len, " "); in copy_and_format_trace_data()
880 len += scnprintf(fnic_dbgfs_prt->buffer in copy_and_format_trace_data()
881 + len, max_size - len, in copy_and_format_trace_data()
887 len += scnprintf(fnic_dbgfs_prt->buffer + len, in copy_and_format_trace_data()
888 max_size - len, "\n"); in copy_and_format_trace_data()