[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-249eed53152167c64c6dc66fa269a1d8b415a7b4@git.kernel.org>
Date: Mon, 20 Mar 2017 23:49:02 -0700
From: tip-bot for Changbin Du <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: acme@...hat.com, hpa@...or.com, linux-kernel@...r.kernel.org,
peterz@...radead.org, tglx@...utronix.de, changbin.du@...el.com,
mingo@...nel.org
Subject: [tip:perf/core] perf lock: Subcommands should include common
options
Commit-ID: 249eed53152167c64c6dc66fa269a1d8b415a7b4
Gitweb: http://git.kernel.org/tip/249eed53152167c64c6dc66fa269a1d8b415a7b4
Author: Changbin Du <changbin.du@...el.com>
AuthorDate: Fri, 17 Mar 2017 13:53:42 +0800
Committer: Arnaldo Carvalho de Melo <acme@...hat.com>
CommitDate: Fri, 17 Mar 2017 11:49:07 -0300
perf lock: Subcommands should include common options
When I use -i option for report subcommand, it doesn't accept it. We
need add common options using OPT_PARENT macro.
perf lock report -i lock_perf.data
Error: unknown switch `i'
Usage: perf lock report [<options>]
-f, --force don't complain, do it
-k, --key <acquired> key for sorting ...
Signed-off-by: Changbin Du <changbin.du@...el.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Link: http://lkml.kernel.org/r/20170317055342.8284-1-changbin.du@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
---
tools/perf/builtin-lock.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index d750cca..4ce815b 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -948,27 +948,30 @@ static int __cmd_record(int argc, const char **argv)
int cmd_lock(int argc, const char **argv, const char *prefix __maybe_unused)
{
+ const struct option lock_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 info_options[] = {
OPT_BOOLEAN('t', "threads", &info_threads,
"dump thread list in perf.data"),
OPT_BOOLEAN('m', "map", &info_map,
"map of lock instances (address:name table)"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
- OPT_END()
- };
- const struct option lock_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(lock_options)
};
+
const struct option report_options[] = {
OPT_STRING('k', "key", &sort_key, "acquired",
"key for sorting (acquired / contended / avg_wait / wait_total / wait_max / wait_min)"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
/* TODO: type */
- OPT_END()
+ OPT_PARENT(lock_options)
};
+
const char * const info_usage[] = {
"perf lock info [<options>]",
NULL
Powered by blists - more mailing lists