On Thursday, November 13, 2025 6:33 AM, Andy Shevchenko andriy.shevchenko@linux.intel.com wrote:
Use %ptSp instead of open coded variants to print content of struct timespec64 in human readable format.
Reviewed-by: Martin K. Petersen martin.petersen@oracle.com Signed-off-by: Andy Shevchenko andriy.shevchenko@linux.intel.com
drivers/scsi/fnic/fnic_trace.c | 52 ++++++++++++++-------------------- 1 file changed, 22 insertions(+), 30 deletions(-)
diff --git a/drivers/scsi/fnic/fnic_trace.c b/drivers/scsi/fnic/fnic_trace.c index cdc6b12b1ec2..0a849a195a8e 100644 --- a/drivers/scsi/fnic/fnic_trace.c +++ b/drivers/scsi/fnic/fnic_trace.c @@ -138,9 +138,8 @@ int fnic_get_trace_data(fnic_dbgfs_t *fnic_dbgfs_prt) */ len += scnprintf(fnic_dbgfs_prt->buffer + len, (trace_max_pages * PAGE_SIZE * 3) - len,
"%16llu.%09lu %-50s %8x %8x %16llx %16llx ""%16llx %16llx %16llx\n", (u64)val.tv_sec,val.tv_nsec, str, tbp->host_no, tbp->tag,
"%ptSp %-50s %8x %8x %16llx %16llx %16llx %16llx %16llx\n",&val, str, tbp->host_no, tbp->tag,tbp->data[0], tbp->data[1], tbp->data[2], tbp->data[3], tbp->data[4]); rd_idx++; @@ -180,9 +179,8 @@ int fnic_get_trace_data(fnic_dbgfs_t *fnic_dbgfs_prt) */ len += scnprintf(fnic_dbgfs_prt->buffer + len, (trace_max_pages * PAGE_SIZE * 3) - len,
"%16llu.%09lu %-50s %8x %8x %16llx %16llx ""%16llx %16llx %16llx\n", (u64)val.tv_sec,val.tv_nsec, str, tbp->host_no, tbp->tag,
"%ptSp %-50s %8x %8x %16llx %16llx %16llx %16llx %16llx\n",&val, str, tbp->host_no, tbp->tag,tbp->data[0], tbp->data[1], tbp->data[2], tbp->data[3], tbp->data[4]); rd_idx++; @@ -215,30 +213,26 @@ int fnic_get_stats_data(struct stats_debug_info *debug, { int len = 0; int buf_size = debug->buf_size;
struct timespec64 val1, val2;
struct timespec64 val, val1, val2;int i = 0;
ktime_get_real_ts64(&val1);
ktime_get_real_ts64(&val);len = scnprintf(debug->debug_buffer + len, buf_size - len, "------------------------------------------\n" "\t\tTime\n" "------------------------------------------\n");
val1 = timespec64_sub(val, stats->stats_timestamps.last_reset_time);val2 = timespec64_sub(val, stats->stats_timestamps.last_read_time);len += scnprintf(debug->debug_buffer + len, buf_size - len,
"Current time : [%lld:%ld]\n""Last stats reset time: [%lld:%09ld]\n""Last stats read time: [%lld:%ld]\n""delta since last reset: [%lld:%ld]\n""delta since last read: [%lld:%ld]\n",(s64)val1.tv_sec, val1.tv_nsec,(s64)stats->stats_timestamps.last_reset_time.tv_sec,stats->stats_timestamps.last_reset_time.tv_nsec,(s64)stats->stats_timestamps.last_read_time.tv_sec,stats->stats_timestamps.last_read_time.tv_nsec,(s64)timespec64_sub(val1, stats->stats_timestamps.last_reset_time).tv_sec,timespec64_sub(val1, stats->stats_timestamps.last_reset_time).tv_nsec,(s64)timespec64_sub(val1, stats->stats_timestamps.last_read_time).tv_sec,timespec64_sub(val1, stats->stats_timestamps.last_read_time).tv_nsec);
"Current time : [%ptSp]\n""Last stats reset time: [%ptSp]\n""Last stats read time: [%ptSp]\n""delta since last reset: [%ptSp]\n""delta since last read: [%ptSp]\n",&val,&stats->stats_timestamps.last_reset_time, &val1,&stats->stats_timestamps.last_read_time, &val2);stats->stats_timestamps.last_read_time = val1;
@@ -416,8 +410,8 @@ int fnic_get_stats_data(struct stats_debug_info *debug, jiffies_to_timespec64(stats->misc_stats.last_ack_time, &val2);
len += scnprintf(debug->debug_buffer + len, buf_size - len,
"Last ISR time: %llu (%8llu.%09lu)\n""Last ACK time: %llu (%8llu.%09lu)\n"
"Last ISR time: %llu (%ptSp)\n""Last ACK time: %llu (%ptSp)\n""Max ISR jiffies: %llu\n" "Max ISR time (ms) (0 denotes < 1 ms): %llu\n" "Corr. work done: %llu\n" @@ -437,10 +431,8 @@ int fnic_get_stats_data(struct stats_debug_info *debug, "Number of rport not ready: %lld\n" "Number of receive frame errors: %lld\n" "Port speed (in Mbps): %lld\n",
(u64)stats->misc_stats.last_isr_time,(s64)val1.tv_sec, val1.tv_nsec,(u64)stats->misc_stats.last_ack_time,(s64)val2.tv_sec, val2.tv_nsec,
(u64)stats->misc_stats.last_isr_time, &val1,(u64)stats->misc_stats.last_ack_time, &val2,(u64)atomic64_read(&stats->misc_stats.max_isr_jiffies), (u64)atomic64_read(&stats->misc_stats.max_isr_time_ms), (u64)atomic64_read(&stats->misc_stats.corr_work_done), @@ -857,8 +849,8 @@ void copy_and_format_trace_data(struct fc_trace_hdr *tdata, len = *orig_len;
len += scnprintf(fnic_dbgfs_prt->buffer + len, max_size - len,
"%ptTs.%09lu ns%8x %c%8x\t",&tdata->time_stamp.tv_sec, tdata->time_stamp.tv_nsec,
"%ptSs ns%8x %c%8x\t",&tdata->time_stamp,tdata->host_no, tdata->frame_type, tdata->frame_len);
fc_trace = (char *)FC_TRACE_ADDRESS(tdata);
2.50.1
Acked-by: Karan Tilak Kumar kartilak@cisco.com
Thanks for the change, Andy.
Can you please advise how I can compile test this change?
Regards, Karan