diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index b21a8769db21..7d97c8e9f7f9 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -1566,6 +1566,9 @@ static int record__init_clock(struct record *rec) if (!rec->opts.use_clockid) return 0; + if (rec->opts.use_clockid && rec->opts.clockid_res_ns) + session->header.env.clock.clockid_res_ns = rec->opts.clockid_res_ns; + session->header.env.clock.clockid = rec->opts.clockid; if (gettimeofday(&ref_tod, NULL) != 0) { @@ -1675,9 +1678,6 @@ static int __cmd_record(struct record *rec, int argc, const char **argv) record__init_features(rec); - if (rec->opts.use_clockid && rec->opts.clockid_res_ns) - session->header.env.clockid_res_ns = rec->opts.clockid_res_ns; - if (forks) { err = perf_evlist__prepare_workload(rec->evlist, &opts->target, argv, data->is_pipe, diff --git a/tools/perf/util/env.h b/tools/perf/util/env.h index 7218f7db57af..a12972652006 100644 --- a/tools/perf/util/env.h +++ b/tools/perf/util/env.h @@ -77,7 +77,6 @@ struct perf_env { struct numa_node *numa_nodes; struct memory_node *memory_nodes; unsigned long long memory_bsize; - u64 clockid_res_ns; /* * bpf_info_lock protects bpf rbtrees. This is needed because the @@ -105,6 +104,7 @@ struct perf_env { struct { u64 tod_ns; u64 clockid_ns; + u64 clockid_res_ns; int clockid; /* * enabled is valid for report mode, and is true if above diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index eece94cf6f86..251faa9a5789 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -892,8 +892,8 @@ static int write_auxtrace(struct feat_fd *ff, static int write_clockid(struct feat_fd *ff, struct evlist *evlist __maybe_unused) { - return do_write(ff, &ff->ph->env.clockid_res_ns, - sizeof(ff->ph->env.clockid_res_ns)); + return do_write(ff, &ff->ph->env.clock.clockid_res_ns, + sizeof(ff->ph->env.clock.clockid_res_ns)); } static int write_clock_data(struct feat_fd *ff, @@ -1581,7 +1581,7 @@ static void print_cpu_topology(struct feat_fd *ff, FILE *fp) static void print_clockid(struct feat_fd *ff, FILE *fp) { fprintf(fp, "# clockid frequency: %"PRIu64" MHz\n", - ff->ph->env.clockid_res_ns * 1000); + ff->ph->env.clock.clockid_res_ns * 1000); } static void print_clock_data(struct feat_fd *ff, FILE *fp) @@ -2810,7 +2810,7 @@ out: static int process_clockid(struct feat_fd *ff, void *data __maybe_unused) { - if (do_read_u64(ff, &ff->ph->env.clockid_res_ns)) + if (do_read_u64(ff, &ff->ph->env.clock.clockid_res_ns)) return -1; return 0;