perf script: Add --dump-unsorted-raw-trace option
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 11 Jul 2022 09:31:50 +0000 (12:31 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 20 Jul 2022 14:07:48 +0000 (11:07 -0300)
When reviewing the results of perf inject, it is useful to be able to see
the events in the order they appear in the file.

So add --dump-unsorted-raw-trace option to do an unsorted dump.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: kvm@vger.kernel.org
Link: https://lore.kernel.org/r/20220711093218.10967-8-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/perf-script.txt
tools/perf/builtin-script.c

index 1a557ff..e250ff5 100644 (file)
@@ -79,6 +79,9 @@ OPTIONS
 --dump-raw-trace=::
         Display verbose dump of the trace data.
 
+--dump-unsorted-raw-trace=::
+        Same as --dump-raw-trace but not sorted in time order.
+
 -L::
 --Latency=::
         Show latency attributes (irqs/preemption disabled, etc).
index 7cf21ab..4b00a50 100644 (file)
@@ -3746,6 +3746,7 @@ int cmd_script(int argc, const char **argv)
        bool header = false;
        bool header_only = false;
        bool script_started = false;
+       bool unsorted_dump = false;
        char *rec_script_path = NULL;
        char *rep_script_path = NULL;
        struct perf_session *session;
@@ -3794,6 +3795,8 @@ int cmd_script(int argc, const char **argv)
        const struct option options[] = {
        OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
                    "dump raw trace in ASCII"),
+       OPT_BOOLEAN(0, "dump-unsorted-raw-trace", &unsorted_dump,
+                   "dump unsorted raw trace in ASCII"),
        OPT_INCR('v', "verbose", &verbose,
                 "be more verbose (show symbol address, etc)"),
        OPT_BOOLEAN('L', "Latency", &latency_format,
@@ -3956,6 +3959,11 @@ int cmd_script(int argc, const char **argv)
        data.path  = input_name;
        data.force = symbol_conf.force;
 
+       if (unsorted_dump) {
+               dump_trace = true;
+               script.tool.ordered_events = false;
+       }
+
        if (symbol__validate_sym_arguments())
                return -1;