Commit f7d4485f authored by Nick Forrington's avatar Nick Forrington Committed by Namhyung Kim

perf lock info: Display both map and thread by default

Change "perf lock info" argument handling to:

Display both map and thread info (rather than an error) when neither are
specified.

Display both map and thread info (rather than just thread info) when
both are requested.
Signed-off-by: default avatarNick Forrington <nick.forrington@arm.com>
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240513091413.738537-2-nick.forrington@arm.com
parent af752016
...@@ -111,11 +111,11 @@ INFO OPTIONS ...@@ -111,11 +111,11 @@ INFO OPTIONS
-t:: -t::
--threads:: --threads::
dump thread list in perf.data dump only the thread list in perf.data
-m:: -m::
--map:: --map::
dump map of lock instances (address:name table) dump only the map of lock instances (address:name table)
CONTENTION OPTIONS CONTENTION OPTIONS
......
...@@ -1477,20 +1477,16 @@ static void dump_map(void) ...@@ -1477,20 +1477,16 @@ static void dump_map(void)
fprintf(lock_output, " %#llx: %s\n", (unsigned long long)st->addr, st->name); fprintf(lock_output, " %#llx: %s\n", (unsigned long long)st->addr, st->name);
} }
static int dump_info(void) static void dump_info(void)
{ {
int rc = 0;
if (info_threads) if (info_threads)
dump_threads(); dump_threads();
else if (info_map)
if (info_map) {
if (info_threads)
fputc('\n', lock_output);
dump_map(); dump_map();
else {
rc = -1;
pr_err("Unknown type of information\n");
} }
return rc;
} }
static const struct evsel_str_handler lock_tracepoints[] = { static const struct evsel_str_handler lock_tracepoints[] = {
...@@ -1992,7 +1988,7 @@ static int __cmd_report(bool display_info) ...@@ -1992,7 +1988,7 @@ static int __cmd_report(bool display_info)
setup_pager(); setup_pager();
if (display_info) /* used for info subcommand */ if (display_info) /* used for info subcommand */
err = dump_info(); dump_info();
else { else {
combine_result(); combine_result();
sort_result(); sort_result();
...@@ -2568,9 +2564,9 @@ int cmd_lock(int argc, const char **argv) ...@@ -2568,9 +2564,9 @@ int cmd_lock(int argc, const char **argv)
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 the thread list in perf.data"),
OPT_BOOLEAN('m', "map", &info_map, OPT_BOOLEAN('m', "map", &info_map,
"map of lock instances (address:name table)"), "dump the map of lock instances (address:name table)"),
OPT_PARENT(lock_options) OPT_PARENT(lock_options)
}; };
...@@ -2684,6 +2680,13 @@ int cmd_lock(int argc, const char **argv) ...@@ -2684,6 +2680,13 @@ int cmd_lock(int argc, const char **argv)
if (argc) if (argc)
usage_with_options(info_usage, info_options); usage_with_options(info_usage, info_options);
} }
/* If neither threads nor map requested, display both */
if (!info_threads && !info_map) {
info_threads = true;
info_map = true;
}
/* recycling report_lock_ops */ /* recycling report_lock_ops */
trace_handler = &report_lock_ops; trace_handler = &report_lock_ops;
rc = __cmd_report(true); rc = __cmd_report(true);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment