From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx> Old trace-cmd data files did not have an option to store the clock that was used. It was always assumed that the clock would be in usecs. If there's no clock in the options of the trace.dat file, then use usecs by default to stay compatible with older versions of trace-cmd trace.dat files. Fixes: 150d479b623a ("libtraceevent, perf tools: Changes in tep_print_event_* APIs") Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> --- lib/trace-cmd/trace-input.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c index 43bdf6ace33b..ef8f0762a535 100644 --- a/lib/trace-cmd/trace-input.c +++ b/lib/trace-cmd/trace-input.c @@ -2311,6 +2311,9 @@ static int handle_options(struct tracecmd_input *handle) char *buf; int cpus; + /* By default, use usecs, unless told otherwise */ + handle->flags |= TRACECMD_FL_IN_USECS; + for (;;) { if (do_read_check(handle, &option, 2)) return -1; @@ -2586,10 +2589,11 @@ static void extract_trace_clock(struct tracecmd_input *handle, char *line) if (!clock) return; - if (!strcmp(clock, "local") || !strcmp(clock, "global") - || !strcmp(clock, "uptime") || !strcmp(clock, "perf") - || !strncmp(clock, "mono", 4)) - handle->flags |= TRACECMD_FL_IN_USECS; + /* Clear usecs if not one of the specified clocks */ + if (strcmp(clock, "local") && strcmp(clock, "global") && + strcmp(clock, "uptime") && strcmp(clock, "perf") && + strncmp(clock, "mono", 4)) + handle->flags &= ~TRACECMD_FL_IN_USECS; } void tracecmd_parse_trace_clock(struct tracecmd_input *handle, -- 2.23.0