int i;
        int ret;
        u64 avg;
+       char max_lat_at[32];
 
        if (!work_list->nb_atoms)
                return;
                printf(" ");
 
        avg = work_list->total_lat / work_list->nb_atoms;
+       timestamp__scnprintf_usec(work_list->max_lat_at, max_lat_at, sizeof(max_lat_at));
 
-       printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %13.6f s\n",
+       printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %13s s\n",
              (double)work_list->total_runtime / NSEC_PER_MSEC,
                 work_list->nb_atoms, (double)avg / NSEC_PER_MSEC,
                 (double)work_list->max_lat / NSEC_PER_MSEC,
-                (double)work_list->max_lat_at / NSEC_PER_SEC);
+                max_lat_at);
 }
 
 static int pid_cmp(struct work_atoms *l, struct work_atoms *r)
        int cpus_nr;
        bool new_cpu = false;
        const char *color = PERF_COLOR_NORMAL;
+       char stimestamp[32];
 
        BUG_ON(this_cpu >= MAX_CPUS || this_cpu < 0);
 
        if (sched->map.cpus && !cpu_map__has(sched->map.cpus, this_cpu))
                goto out;
 
-       color_fprintf(stdout, color, "  %12.6f secs ", (double)timestamp / NSEC_PER_SEC);
+       timestamp__scnprintf_usec(timestamp, stimestamp, sizeof(stimestamp));
+       color_fprintf(stdout, color, "  %12s secs ", stimestamp);
        if (new_shortname || (verbose && sched_in->tid)) {
                const char *pid_color = color;
 
 
 {
        struct perf_event_attr *attr = &evsel->attr;
        unsigned long secs;
-       unsigned long usecs;
        unsigned long long nsecs;
 
        if (PRINT_FIELD(COMM)) {
                nsecs = sample->time;
                secs = nsecs / NSEC_PER_SEC;
                nsecs -= secs * NSEC_PER_SEC;
-               usecs = nsecs / NSEC_PER_USEC;
+
                if (nanosecs)
                        printf("%5lu.%09llu: ", secs, nsecs);
-               else
-                       printf("%5lu.%06lu: ", secs, usecs);
+               else {
+                       char sample_time[32];
+                       timestamp__scnprintf_usec(sample->time, sample_time, sizeof(sample_time));
+                       printf("%12s: ", sample_time);
+               }
        }
 }
 
 
        return 0;
 }
 
+int timestamp__scnprintf_usec(u64 timestamp, char *buf, size_t sz)
+{
+       u64  sec = timestamp / NSEC_PER_SEC;
+       u64 usec = (timestamp % NSEC_PER_SEC) / NSEC_PER_USEC;
+
+       return scnprintf(buf, sz, "%"PRIu64".%06"PRIu64, sec, usec);
+}
+
 unsigned long parse_tag_value(const char *str, struct parse_tag *tags)
 {
        struct parse_tag *i = tags;