struct list_head        list;
 };
 
+static void lock_stat_key_print_time(unsigned long long nsec, int len)
+{
+       static const struct {
+               float base;
+               const char *unit;
+       } table[] = {
+               { 1e9 * 3600, "h " },
+               { 1e9 * 60, "m " },
+               { 1e9, "s " },
+               { 1e6, "ms" },
+               { 1e3, "us" },
+               { 0, NULL },
+       };
+
+       for (int i = 0; table[i].unit; i++) {
+               if (nsec < table[i].base)
+                       continue;
+
+               pr_info("%*.2f %s", len - 3, nsec / table[i].base, table[i].unit);
+               return;
+       }
+
+       pr_info("%*llu %s", len - 3, nsec, "ns");
+}
+
 #define PRINT_KEY(member)                                              \
 static void lock_stat_key_print_ ## member(struct lock_key *key,       \
                                           struct lock_stat *ls)        \
        pr_info("%*llu", key->len, (unsigned long long)ls->member);     \
 }
 
+#define PRINT_TIME(member)                                             \
+static void lock_stat_key_print_ ## member(struct lock_key *key,       \
+                                          struct lock_stat *ls)        \
+{                                                                      \
+       lock_stat_key_print_time((unsigned long long)ls->member, key->len);     \
+}
+
 PRINT_KEY(nr_acquired)
 PRINT_KEY(nr_contended)
-PRINT_KEY(avg_wait_time)
-PRINT_KEY(wait_time_total)
-PRINT_KEY(wait_time_max)
+PRINT_TIME(avg_wait_time)
+PRINT_TIME(wait_time_total)
+PRINT_TIME(wait_time_max)
 
 static void lock_stat_key_print_wait_time_min(struct lock_key *key,
                                              struct lock_stat *ls)
        if (wait_time == ULLONG_MAX)
                wait_time = 0;
 
-       pr_info("%*"PRIu64, key->len, wait_time);
+       lock_stat_key_print_time(wait_time, key->len);
 }
 
 
 struct lock_key keys[] = {
        DEF_KEY_LOCK(acquired, "acquired", nr_acquired, 10),
        DEF_KEY_LOCK(contended, "contended", nr_contended, 10),
-       DEF_KEY_LOCK(avg_wait, "avg wait (ns)", avg_wait_time, 15),
-       DEF_KEY_LOCK(wait_total, "total wait (ns)", wait_time_total, 15),
-       DEF_KEY_LOCK(wait_max, "max wait (ns)", wait_time_max, 15),
-       DEF_KEY_LOCK(wait_min, "min wait (ns)", wait_time_min, 15),
+       DEF_KEY_LOCK(avg_wait, "avg wait", avg_wait_time, 12),
+       DEF_KEY_LOCK(wait_total, "total wait", wait_time_total, 12),
+       DEF_KEY_LOCK(wait_max, "max wait", wait_time_max, 12),
+       DEF_KEY_LOCK(wait_min, "min wait", wait_time_min, 12),
 
        /* extra comparisons much complicated should be here */
        { }