From: Ian Rogers Date: Wed, 8 Jul 2020 18:39:19 +0000 (-0700) Subject: perf kmem: Pass additional arguments to 'perf record' X-Git-Tag: microblaze-v5.10~67^2~87 X-Git-Url: http://git.monstr.eu/?p=linux-2.6-microblaze.git;a=commitdiff_plain;h=be8299e4a2e244d5645392f54b2bf1bbd576813a perf kmem: Pass additional arguments to 'perf record' 'perf kmem' has an input file option but current an output file option fails: $ sudo perf kmem record -o /tmp/p.data sleep 1    Error: unknown switch `o' Usage: perf kmem [] {record|stat}    -f, --force           don't complain, do it    -i, --input    input file name    -l, --line      show n lines    -s, --sort                          sort by keys: ptr, callsite, bytes, hit, pingpong, frag, page, order, mig>    -v, --verbose         be more verbose (show symbol address, etc)        --alloc           show per-allocation statistics        --caller          show per-callsite statistics        --live            Show live page stat        --page            Analyze page allocator        --raw-ip          show raw ip instead of symbol        --slab            Analyze slab allocator        --time      Time span of interest (start,stop) 'perf sched' is similar in implementation and avoids the problem by passing additional arguments to 'perf record'. This change makes 'perf kmem' parse command line options consistently with 'perf sched', although neither actually list that -o is a supported option. Signed-off-by: Ian Rogers Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: http://lore.kernel.org/lkml/20200708183919.4141023-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index 38a5ab683ebc..a50dae2c4ae9 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c @@ -1933,7 +1933,8 @@ int cmd_kmem(int argc, const char **argv) return ret; argc = parse_options_subcommand(argc, argv, kmem_options, - kmem_subcommands, kmem_usage, 0); + kmem_subcommands, kmem_usage, + PARSE_OPT_STOP_AT_NON_OPTION); if (!argc) usage_with_options(kmem_usage, kmem_options);