Merge branch 'perf/urgent' into perf/core, to pick up fixes
[cascardo/linux.git] / tools / perf / builtin-stat.c
index 3c7452b..90882b1 100644 (file)
@@ -65,6 +65,7 @@
 #include "util/group.h"
 #include "asm/bug.h"
 
+#include <linux/time64.h>
 #include <api/fs/fs.h>
 #include <stdlib.h>
 #include <sys/prctl.h>
@@ -172,7 +173,7 @@ static inline void diff_timespec(struct timespec *r, struct timespec *a,
 {
        r->tv_sec = a->tv_sec - b->tv_sec;
        if (a->tv_nsec < b->tv_nsec) {
-               r->tv_nsec = a->tv_nsec + 1000000000L - b->tv_nsec;
+               r->tv_nsec = a->tv_nsec + NSEC_PER_SEC - b->tv_nsec;
                r->tv_sec--;
        } else {
                r->tv_nsec = a->tv_nsec - b->tv_nsec ;
@@ -354,7 +355,7 @@ static void process_interval(void)
        diff_timespec(&rs, &ts, &ref_time);
 
        if (STAT_RECORD) {
-               if (WRITE_STAT_ROUND_EVENT(rs.tv_sec * NSECS_PER_SEC + rs.tv_nsec, INTERVAL))
+               if (WRITE_STAT_ROUND_EVENT(rs.tv_sec * NSEC_PER_SEC + rs.tv_nsec, INTERVAL))
                        pr_err("failed to write stat round event\n");
        }
 
@@ -364,7 +365,7 @@ static void process_interval(void)
 static void enable_counters(void)
 {
        if (initial_delay)
-               usleep(initial_delay * 1000);
+               usleep(initial_delay * USEC_PER_MSEC);
 
        /*
         * We need to enable counters only if:
@@ -541,8 +542,8 @@ static int __run_perf_stat(int argc, const char **argv)
        bool is_pipe = STAT_RECORD ? perf_stat.file.is_pipe : false;
 
        if (interval) {
-               ts.tv_sec  = interval / 1000;
-               ts.tv_nsec = (interval % 1000) * 1000000;
+               ts.tv_sec  = interval / USEC_PER_MSEC;
+               ts.tv_nsec = (interval % USEC_PER_MSEC) * NSEC_PER_MSEC;
        } else {
                ts.tv_sec  = 1;
                ts.tv_nsec = 0;
@@ -971,7 +972,7 @@ static void print_metric_header(void *ctx, const char *color __maybe_unused,
 static void nsec_printout(int id, int nr, struct perf_evsel *evsel, double avg)
 {
        FILE *output = stat_config.output;
-       double msecs = avg / 1e6;
+       double msecs = avg / NSEC_PER_MSEC;
        const char *fmt_v, *fmt_n;
        char name[25];
 
@@ -1460,7 +1461,7 @@ static void print_footer(void)
        if (!null_run)
                fprintf(output, "\n");
        fprintf(output, " %17.9f seconds time elapsed",
-                       avg_stats(&walltime_nsecs_stats)/1e9);
+                       avg_stats(&walltime_nsecs_stats) / NSEC_PER_SEC);
        if (run_count > 1) {
                fprintf(output, "                                        ");
                print_noise_pct(stddev_stats(&walltime_nsecs_stats),
@@ -2175,8 +2176,8 @@ static int process_stat_round_event(struct perf_tool *tool __maybe_unused,
                update_stats(&walltime_nsecs_stats, stat_round->time);
 
        if (stat_config.interval && stat_round->time) {
-               tsh.tv_sec  = stat_round->time / NSECS_PER_SEC;
-               tsh.tv_nsec = stat_round->time % NSECS_PER_SEC;
+               tsh.tv_sec  = stat_round->time / NSEC_PER_SEC;
+               tsh.tv_nsec = stat_round->time % NSEC_PER_SEC;
                ts = &tsh;
        }