Commit-ID:  77f02f44460ab1480af2ae6145a1a85b9fe0b8ac
Gitweb:     http://git.kernel.org/tip/77f02f44460ab1480af2ae6145a1a85b9fe0b8ac
Author:     Namhyung Kim <namhy...@kernel.org>
AuthorDate: Mon, 24 Oct 2016 12:00:03 +0900
Committer:  Arnaldo Carvalho de Melo <a...@redhat.com>
CommitDate: Tue, 25 Oct 2016 10:24:48 -0300

perf sched: Make common options cascading

The -i and -v options can be used in subcommands so enable cascading the
sched_options.  This fixes the following inconvenience in 'perf sched':

  $ perf sched -i perf.data.sched  map
  ... (it works well) ...

  $ perf sched map  -i perf.data.sched
    Error: unknown switch `i'

   Usage: perf sched map [<options>]

          --color-cpus <cpus>
                            highlight given CPUs in map
          --color-pids <pids>
                            highlight given pids in map
          --compact         map output in compact mode
          --cpus <cpus>     display given CPUs in map

With this patch, the second command line works with the perf.data.sched
data file.

Signed-off-by: Namhyung Kim <namhy...@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <a...@redhat.com>
Acked-by: Jiri Olsa <jo...@kernel.org>
Cc: Andi Kleen <a...@firstfloor.org>
Cc: David Ahern <dsah...@gmail.com>
Cc: Josh Poimboeuf <jpoim...@redhat.com>
Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
Cc: Wang Nan <wangn...@huawei.com>
Link: http://lkml.kernel.org/r/20161024030003.28534-2-namhy...@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 tools/perf/builtin-sched.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index f5503ca..8ca1b540 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -1954,6 +1954,15 @@ int cmd_sched(int argc, const char **argv, const char 
*prefix __maybe_unused)
                .next_shortname2      = '0',
                .skip_merge           = 0,
        };
+       const struct option sched_options[] = {
+       OPT_STRING('i', "input", &input_name, "file",
+                   "input file name"),
+       OPT_INCR('v', "verbose", &verbose,
+                   "be more verbose (show symbol address, etc)"),
+       OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
+                   "dump raw trace in ASCII"),
+       OPT_END()
+       };
        const struct option latency_options[] = {
        OPT_STRING('s', "sort", &sched.sort_order, "key[,key2...]",
                   "sort by key(s): runtime, switch, avg, max"),
@@ -1965,7 +1974,7 @@ int cmd_sched(int argc, const char **argv, const char 
*prefix __maybe_unused)
                    "dump raw trace in ASCII"),
        OPT_BOOLEAN('p', "pids", &sched.skip_merge,
                    "latency stats per pid instead of per comm"),
-       OPT_END()
+       OPT_PARENT(sched_options)
        };
        const struct option replay_options[] = {
        OPT_UINTEGER('r', "repeat", &sched.replay_repeat,
@@ -1975,16 +1984,7 @@ int cmd_sched(int argc, const char **argv, const char 
*prefix __maybe_unused)
        OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
                    "dump raw trace in ASCII"),
        OPT_BOOLEAN('f', "force", &sched.force, "don't complain, do it"),
-       OPT_END()
-       };
-       const struct option sched_options[] = {
-       OPT_STRING('i', "input", &input_name, "file",
-                   "input file name"),
-       OPT_INCR('v', "verbose", &verbose,
-                   "be more verbose (show symbol address, etc)"),
-       OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
-                   "dump raw trace in ASCII"),
-       OPT_END()
+       OPT_PARENT(sched_options)
        };
        const struct option map_options[] = {
        OPT_BOOLEAN(0, "compact", &sched.map.comp,
@@ -1995,7 +1995,7 @@ int cmd_sched(int argc, const char **argv, const char 
*prefix __maybe_unused)
                     "highlight given CPUs in map"),
        OPT_STRING(0, "cpus", &sched.map.cpus_str, "cpus",
                     "display given CPUs in map"),
-       OPT_END()
+       OPT_PARENT(sched_options)
        };
        const char * const latency_usage[] = {
                "perf sched latency [<options>]",

Reply via email to