From: Kan Liang <kan.li...@intel.com> Make get_nsecs visible to collect monotonic wall time. Introduce get_vnsecs to collect CPU time.
Signed-off-by: Kan Liang <kan.li...@intel.com> --- tools/perf/builtin-record.c | 9 +++++++++ tools/perf/builtin-sched.c | 2 +- tools/perf/builtin.h | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 73b033b..e69099d 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -65,6 +65,15 @@ struct record { unsigned long long samples; }; +u64 get_vnsecs(void) +{ + struct timespec ts; + + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts); + + return ts.tv_sec * NSEC_PER_SEC + ts.tv_nsec; +} + static int record__write(struct record *rec, void *bf, size_t size) { if (perf_data_file__write(rec->session->file, bf, size) < 0) { diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index a49a032..35a301b 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -229,7 +229,7 @@ static struct thread **idle_threads; static int idle_max_cpu; static char idle_comm[] = "<idle>"; -static u64 get_nsecs(void) +u64 get_nsecs(void) { struct timespec ts; diff --git a/tools/perf/builtin.h b/tools/perf/builtin.h index 0bcf68e..2a9a1db 100644 --- a/tools/perf/builtin.h +++ b/tools/perf/builtin.h @@ -12,6 +12,8 @@ const char *help_unknown_cmd(const char *cmd); void prune_packed_objects(int); int read_line_with_nul(char *buf, int size, FILE *file); int check_pager_config(const char *cmd); +u64 get_nsecs(void); +u64 get_vnsecs(void); int cmd_annotate(int argc, const char **argv, const char *prefix); int cmd_bench(int argc, const char **argv, const char *prefix); -- 2.5.5