The debugfs brw stats interface contains timestamps that are
computed from timeval, which overflows in 2038 on 32-bit systems.
This changes the output to use a timespec64 type to avoid the
overflow. I also change the format to print the sub-second portion
as 9 digits (nanoseconds) for clarity, rather than printing six
digits without leading zeroes.
Change-Id: I34f3b02a0d5f80e9ae22a47f55445199332b3dc9
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/25411
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
static void brw_stats_show(struct seq_file *seq, struct brw_stats *brw_stats)
{
static void brw_stats_show(struct seq_file *seq, struct brw_stats *brw_stats)
{
/* this sampling races with updates */
/* this sampling races with updates */
- do_gettimeofday(&now);
- seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n",
- now.tv_sec, now.tv_usec);
+ ktime_get_real_ts64(&now);
+ seq_printf(seq, "snapshot_time: %llu.%09lu (secs.nsecs)\n",
+ (s64)now.tv_sec, now.tv_nsec);
display_brw_stats(seq, "pages per bulk r/w", "rpcs",
&brw_stats->hist[BRW_R_PAGES],
display_brw_stats(seq, "pages per bulk r/w", "rpcs",
&brw_stats->hist[BRW_R_PAGES],