提交 249eed53 编写于 作者: C Changbin Du 提交者: Arnaldo Carvalho de Melo

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: NChangbin Du <changbin.du@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20170317055342.8284-1-changbin.du@intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 61f63e38
...@@ -948,27 +948,30 @@ static int __cmd_record(int argc, const char **argv) ...@@ -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) 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[] = { const struct option info_options[] = {
OPT_BOOLEAN('t', "threads", &info_threads, OPT_BOOLEAN('t', "threads", &info_threads,
"dump thread list in perf.data"), "dump thread list in perf.data"),
OPT_BOOLEAN('m', "map", &info_map, OPT_BOOLEAN('m', "map", &info_map,
"map of lock instances (address:name table)"), "map of lock instances (address:name table)"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
OPT_END() OPT_PARENT(lock_options)
};
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 report_options[] = { const struct option report_options[] = {
OPT_STRING('k', "key", &sort_key, "acquired", OPT_STRING('k', "key", &sort_key, "acquired",
"key for sorting (acquired / contended / avg_wait / wait_total / wait_max / wait_min)"), "key for sorting (acquired / contended / avg_wait / wait_total / wait_max / wait_min)"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
/* TODO: type */ /* TODO: type */
OPT_END() OPT_PARENT(lock_options)
}; };
const char * const info_usage[] = { const char * const info_usage[] = {
"perf lock info [<options>]", "perf lock info [<options>]",
NULL NULL
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册