Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf diff: Add -q/--quiet option

The -q/--quiet option is to suppress any message. Sometimes users just
want to see the numbers and it can be used for that case.

Committer notes:

Before:

# perf diff | head -10
Failed to open /tmp/perf-6678.map, continuing without symbols
Failed to open /tmp/perf-6678.map, continuing without symbols
Failed to open /tmp/perf-2646.map, continuing without symbols
# Event 'cycles'
#
# Baseline Delta Abs Shared Object Symbol
# ........ ......... .......................... ............................................
#
5.36% -1.76% [kernel.vmlinux] [k] intel_idle
2.80% +1.48% firefox [.] 0x00000000000101fe
57.12% -1.25% libxul.so [.] 0x00000000009bea92
1.36% -1.11% [kernel.vmlinux] [k] __schedule
4.26% -1.00% perf-6678.map [.] 0x00007fac4b0e9320

After:

# perf diff -q | head -10
5.36% -1.76% [kernel.vmlinux] [k] intel_idle
2.80% +1.48% firefox [.] 0x00000000000101fe
57.12% -1.25% libxul.so [.] 0x00000000009bea92
1.36% -1.11% [kernel.vmlinux] [k] __schedule
4.26% -1.00% perf-6678.map [.] 0x00007fac4b0e9320
1.86% +0.95% [kernel.vmlinux] [k] update_blocked_averages
0.80% -0.70% [kernel.vmlinux] [k] native_sched_clock
0.74% -0.58% [kernel.vmlinux] [k] native_write_msr
0.76% -0.56% qemu-system-x86_64 [.] 0x00000000002395c0
+0.54% libpulsecommon-10.0.so [.] 0x000000000002d91b
#

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Suggested-and-Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: kernel-team@lge.com
Link: http://lkml.kernel.org/r/20170217081742.17417-5-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Namhyung Kim and committed by
Arnaldo Carvalho de Melo
63b42fce 27fafab5

+14 -4
+4
tools/perf/Documentation/perf-diff.txt
··· 73 73 Be verbose, for instance, show the raw counts in addition to the 74 74 diff. 75 75 76 + -q:: 77 + --quiet:: 78 + Do not show any message. (Suppress -v) 79 + 76 80 -f:: 77 81 --force:: 78 82 Don't do ownership validation.
+10 -4
tools/perf/builtin-diff.c
··· 691 691 hists__precompute(hists); 692 692 hists__output_resort(hists, NULL); 693 693 694 - hists__fprintf(hists, true, 0, 0, 0, stdout, 694 + hists__fprintf(hists, !quiet, 0, 0, 0, stdout, 695 695 symbol_conf.use_callchain); 696 696 } 697 697 ··· 739 739 hists__link(hists_base, hists); 740 740 } 741 741 742 - fprintf(stdout, "%s# Event '%s'\n#\n", first ? "" : "\n", 743 - perf_evsel__name(evsel_base)); 742 + if (!quiet) { 743 + fprintf(stdout, "%s# Event '%s'\n#\n", first ? "" : "\n", 744 + perf_evsel__name(evsel_base)); 745 + } 744 746 745 747 first = false; 746 748 747 - if (verbose > 0 || data__files_cnt > 2) 749 + if (verbose > 0 || ((data__files_cnt > 2) && !quiet)) 748 750 data__fprintf(); 749 751 750 752 /* Don't sort callchain for perf diff */ ··· 809 807 static const struct option options[] = { 810 808 OPT_INCR('v', "verbose", &verbose, 811 809 "be more verbose (show symbol address, etc)"), 810 + OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any message"), 812 811 OPT_BOOLEAN('b', "baseline-only", &show_baseline_only, 813 812 "Show only items with match in baseline"), 814 813 OPT_CALLBACK('c', "compute", &compute, ··· 1330 1327 perf_config(diff__config, NULL); 1331 1328 1332 1329 argc = parse_options(argc, argv, options, diff_usage, 0); 1330 + 1331 + if (quiet) 1332 + perf_quiet_option(); 1333 1333 1334 1334 if (symbol__init(NULL) < 0) 1335 1335 return -1;