perf lock: Add -q/--quiet option to suppress header and debug messages
authorNamhyung Kim <namhyung@kernel.org>
Sat, 24 Sep 2022 00:42:20 +0000 (17:42 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 4 Oct 2022 11:55:23 +0000 (08:55 -0300)
Like in 'perf report', this option is to suppress header and debug messages.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220924004221.841024-2-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/Documentation/perf-lock.txt
tools/perf/builtin-lock.c

index b23e762..3b1e165 100644 (file)
@@ -40,6 +40,10 @@ COMMON OPTIONS
 --verbose::
         Be more verbose (show symbol address, etc).
 
+-q::
+--quiet::
+       Do not show any message. (Suppress -v)
+
 -D::
 --dump-raw-trace::
         Dump raw trace in ASCII.
index 1c0d523..9722d4a 100644 (file)
@@ -1250,7 +1250,7 @@ static void print_bad_events(int bad, int total)
        for (i = 0; i < BROKEN_MAX; i++)
                broken += bad_hist[i];
 
-       if (broken == 0 && !verbose)
+       if (quiet || (broken == 0 && !verbose))
                return;
 
        pr_info("\n=== output for debug===\n\n");
@@ -1269,10 +1269,12 @@ static void print_result(void)
        char cut_name[20];
        int bad, total, printed;
 
-       pr_info("%20s ", "Name");
-       list_for_each_entry(key, &lock_keys, list)
-               pr_info("%*s ", key->len, key->header);
-       pr_info("\n\n");
+       if (!quiet) {
+               pr_info("%20s ", "Name");
+               list_for_each_entry(key, &lock_keys, list)
+                       pr_info("%*s ", key->len, key->header);
+               pr_info("\n\n");
+       }
 
        bad = total = printed = 0;
        while ((st = pop_from_result())) {
@@ -1482,13 +1484,15 @@ static void print_contention_result(struct lock_contention *con)
        struct lock_key *key;
        int bad, total, printed;
 
-       list_for_each_entry(key, &lock_keys, list)
-               pr_info("%*s ", key->len, key->header);
+       if (!quiet) {
+               list_for_each_entry(key, &lock_keys, list)
+                       pr_info("%*s ", key->len, key->header);
 
-       if (show_thread_stats)
-               pr_info("  %10s   %s\n\n", "pid", "comm");
-       else
-               pr_info("  %10s   %s\n\n", "type", "caller");
+               if (show_thread_stats)
+                       pr_info("  %10s   %s\n\n", "pid", "comm");
+               else
+                       pr_info("  %10s   %s\n\n", "type", "caller");
+       }
 
        bad = total = printed = 0;
        if (use_bpf)
@@ -1865,6 +1869,7 @@ int cmd_lock(int argc, const char **argv)
                   "file", "vmlinux pathname"),
        OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name,
                   "file", "kallsyms pathname"),
+       OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any message"),
        OPT_END()
        };