Commit a527c2c1 authored by James Clark's avatar James Clark Committed by Arnaldo Carvalho de Melo

perf tools: Make quiet mode consistent between tools

Use the global quiet variable everywhere so that all tools hide warnings
in quiet mode and update the documentation to reflect this.

'perf probe' claimed that errors are not printed in quiet mode but I
don't see this so remove it from the docs.
Signed-off-by: default avatarJames Clark <james.clark@arm.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20221018094137.783081-3-james.clark@arm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 65319890
...@@ -41,7 +41,7 @@ OPTIONS ...@@ -41,7 +41,7 @@ OPTIONS
-q:: -q::
--quiet:: --quiet::
Do not show any message. (Suppress -v) Do not show any warnings or messages. (Suppress -v)
-n:: -n::
--show-nr-samples:: --show-nr-samples::
......
...@@ -75,7 +75,7 @@ OPTIONS ...@@ -75,7 +75,7 @@ OPTIONS
-q:: -q::
--quiet:: --quiet::
Do not show any message. (Suppress -v) Do not show any warnings or messages. (Suppress -v)
-f:: -f::
--force:: --force::
......
...@@ -42,7 +42,7 @@ COMMON OPTIONS ...@@ -42,7 +42,7 @@ COMMON OPTIONS
-q:: -q::
--quiet:: --quiet::
Do not show any message. (Suppress -v) Do not show any warnings or messages. (Suppress -v)
-D:: -D::
--dump-raw-trace:: --dump-raw-trace::
......
...@@ -57,7 +57,7 @@ OPTIONS ...@@ -57,7 +57,7 @@ OPTIONS
-q:: -q::
--quiet:: --quiet::
Be quiet (do not show any messages including errors). Do not show any warnings or messages.
Can not use with -v. Can not use with -v.
-a:: -a::
......
...@@ -282,7 +282,7 @@ OPTIONS ...@@ -282,7 +282,7 @@ OPTIONS
-q:: -q::
--quiet:: --quiet::
Don't print any message, useful for scripting. Don't print any warnings or messages, useful for scripting.
-v:: -v::
--verbose:: --verbose::
......
...@@ -27,7 +27,7 @@ OPTIONS ...@@ -27,7 +27,7 @@ OPTIONS
-q:: -q::
--quiet:: --quiet::
Do not show any message. (Suppress -v) Do not show any warnings or messages. (Suppress -v)
-n:: -n::
--show-nr-samples:: --show-nr-samples::
......
...@@ -354,8 +354,8 @@ forbids the event merging logic from sharing events between groups and ...@@ -354,8 +354,8 @@ forbids the event merging logic from sharing events between groups and
may be used to increase accuracy in this case. may be used to increase accuracy in this case.
--quiet:: --quiet::
Don't print output. This is useful with perf stat record below to only Don't print output, warnings or messages. This is useful with perf stat
write data to the perf.data file. record below to only write data to the perf.data file.
STAT RECORD STAT RECORD
----------- -----------
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <sched.h> #include <sched.h>
#include <stdio.h> #include <stdio.h>
#include <assert.h> #include <assert.h>
#include <debug.h>
#include <malloc.h> #include <malloc.h>
#include <signal.h> #include <signal.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -116,7 +117,6 @@ struct params { ...@@ -116,7 +117,6 @@ struct params {
long bytes_thread; long bytes_thread;
int nr_tasks; int nr_tasks;
bool show_quiet;
bool show_convergence; bool show_convergence;
bool measure_convergence; bool measure_convergence;
...@@ -197,7 +197,8 @@ static const struct option options[] = { ...@@ -197,7 +197,8 @@ static const struct option options[] = {
OPT_BOOLEAN('c', "show_convergence", &p0.show_convergence, "show convergence details, " OPT_BOOLEAN('c', "show_convergence", &p0.show_convergence, "show convergence details, "
"convergence is reached when each process (all its threads) is running on a single NUMA node."), "convergence is reached when each process (all its threads) is running on a single NUMA node."),
OPT_BOOLEAN('m', "measure_convergence", &p0.measure_convergence, "measure convergence latency"), OPT_BOOLEAN('m', "measure_convergence", &p0.measure_convergence, "measure convergence latency"),
OPT_BOOLEAN('q', "quiet" , &p0.show_quiet, "quiet mode"), OPT_BOOLEAN('q', "quiet" , &quiet,
"quiet mode (do not show any warnings or messages)"),
OPT_BOOLEAN('S', "serialize-startup", &p0.serialize_startup,"serialize thread startup"), OPT_BOOLEAN('S', "serialize-startup", &p0.serialize_startup,"serialize thread startup"),
/* Special option string parsing callbacks: */ /* Special option string parsing callbacks: */
...@@ -1474,7 +1475,7 @@ static int init(void) ...@@ -1474,7 +1475,7 @@ static int init(void)
/* char array in count_process_nodes(): */ /* char array in count_process_nodes(): */
BUG_ON(g->p.nr_nodes < 0); BUG_ON(g->p.nr_nodes < 0);
if (g->p.show_quiet && !g->p.show_details) if (quiet && !g->p.show_details)
g->p.show_details = -1; g->p.show_details = -1;
/* Some memory should be specified: */ /* Some memory should be specified: */
...@@ -1553,7 +1554,7 @@ static void print_res(const char *name, double val, ...@@ -1553,7 +1554,7 @@ static void print_res(const char *name, double val,
if (!name) if (!name)
name = "main,"; name = "main,";
if (!g->p.show_quiet) if (!quiet)
printf(" %-30s %15.3f, %-15s %s\n", name, val, txt_unit, txt_short); printf(" %-30s %15.3f, %-15s %s\n", name, val, txt_unit, txt_short);
else else
printf(" %14.3f %s\n", val, txt_long); printf(" %14.3f %s\n", val, txt_long);
......
...@@ -525,7 +525,7 @@ int cmd_annotate(int argc, const char **argv) ...@@ -525,7 +525,7 @@ int cmd_annotate(int argc, const char **argv)
OPT_BOOLEAN('f', "force", &data.force, "don't complain, do it"), OPT_BOOLEAN('f', "force", &data.force, "don't complain, do it"),
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
"be more verbose (show symbol address, etc)"), "be more verbose (show symbol address, etc)"),
OPT_BOOLEAN('q', "quiet", &quiet, "do now show any message"), OPT_BOOLEAN('q', "quiet", &quiet, "do now show any warnings or messages"),
OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace, OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
"dump raw trace in ASCII"), "dump raw trace in ASCII"),
#ifdef HAVE_GTK2_SUPPORT #ifdef HAVE_GTK2_SUPPORT
......
...@@ -1260,7 +1260,7 @@ static const char * const diff_usage[] = { ...@@ -1260,7 +1260,7 @@ static const char * const diff_usage[] = {
static const struct option options[] = { static const struct option options[] = {
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
"be more verbose (show symbol address, etc)"), "be more verbose (show symbol address, etc)"),
OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any message"), OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any warnings or messages"),
OPT_BOOLEAN('b', "baseline-only", &show_baseline_only, OPT_BOOLEAN('b', "baseline-only", &show_baseline_only,
"Show only items with match in baseline"), "Show only items with match in baseline"),
OPT_CALLBACK('c', "compute", &compute, OPT_CALLBACK('c', "compute", &compute,
......
...@@ -1869,7 +1869,7 @@ int cmd_lock(int argc, const char **argv) ...@@ -1869,7 +1869,7 @@ int cmd_lock(int argc, const char **argv)
"file", "vmlinux pathname"), "file", "vmlinux pathname"),
OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name,
"file", "kallsyms pathname"), "file", "kallsyms pathname"),
OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any message"), OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any warnings or messages"),
OPT_END() OPT_END()
}; };
......
...@@ -40,7 +40,6 @@ static struct { ...@@ -40,7 +40,6 @@ static struct {
int command; /* Command short_name */ int command; /* Command short_name */
bool list_events; bool list_events;
bool uprobes; bool uprobes;
bool quiet;
bool target_used; bool target_used;
int nevents; int nevents;
struct perf_probe_event events[MAX_PROBES]; struct perf_probe_event events[MAX_PROBES];
...@@ -514,8 +513,8 @@ __cmd_probe(int argc, const char **argv) ...@@ -514,8 +513,8 @@ __cmd_probe(int argc, const char **argv)
struct option options[] = { struct option options[] = {
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
"be more verbose (show parsed arguments, etc)"), "be more verbose (show parsed arguments, etc)"),
OPT_BOOLEAN('q', "quiet", &params.quiet, OPT_BOOLEAN('q', "quiet", &quiet,
"be quiet (do not show any messages)"), "be quiet (do not show any warnings or messages)"),
OPT_CALLBACK_DEFAULT('l', "list", NULL, "[GROUP:]EVENT", OPT_CALLBACK_DEFAULT('l', "list", NULL, "[GROUP:]EVENT",
"list up probe events", "list up probe events",
opt_set_filter_with_command, DEFAULT_LIST_FILTER), opt_set_filter_with_command, DEFAULT_LIST_FILTER),
...@@ -634,7 +633,7 @@ __cmd_probe(int argc, const char **argv) ...@@ -634,7 +633,7 @@ __cmd_probe(int argc, const char **argv)
if (ret) if (ret)
return ret; return ret;
if (params.quiet) { if (quiet) {
if (verbose != 0) { if (verbose != 0) {
pr_err(" Error: -v and -q are exclusive.\n"); pr_err(" Error: -v and -q are exclusive.\n");
return -EINVAL; return -EINVAL;
......
...@@ -3388,7 +3388,7 @@ static struct option __record_options[] = { ...@@ -3388,7 +3388,7 @@ static struct option __record_options[] = {
&record_parse_callchain_opt), &record_parse_callchain_opt),
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
"be more verbose (show counter open errors, etc)"), "be more verbose (show counter open errors, etc)"),
OPT_BOOLEAN('q', "quiet", &quiet, "don't print any message"), OPT_BOOLEAN('q', "quiet", &quiet, "don't print any warnings or messages"),
OPT_BOOLEAN('s', "stat", &record.opts.inherit_stat, OPT_BOOLEAN('s', "stat", &record.opts.inherit_stat,
"per thread counts"), "per thread counts"),
OPT_BOOLEAN('d', "data", &record.opts.sample_address, "Record the sample addresses"), OPT_BOOLEAN('d', "data", &record.opts.sample_address, "Record the sample addresses"),
......
...@@ -1222,7 +1222,7 @@ int cmd_report(int argc, const char **argv) ...@@ -1222,7 +1222,7 @@ int cmd_report(int argc, const char **argv)
"input file name"), "input file name"),
OPT_INCR('v', "verbose", &verbose, OPT_INCR('v', "verbose", &verbose,
"be more verbose (show symbol address, etc)"), "be more verbose (show symbol address, etc)"),
OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any message"), OPT_BOOLEAN('q', "quiet", &quiet, "Do not show any warnings or messages"),
OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace, OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
"dump raw trace in ASCII"), "dump raw trace in ASCII"),
OPT_BOOLEAN(0, "stats", &report.stats_mode, "Display event stats"), OPT_BOOLEAN(0, "stats", &report.stats_mode, "Display event stats"),
......
...@@ -1033,7 +1033,7 @@ static void print_counters(struct timespec *ts, int argc, const char **argv) ...@@ -1033,7 +1033,7 @@ static void print_counters(struct timespec *ts, int argc, const char **argv)
/* Do not print anything if we record to the pipe. */ /* Do not print anything if we record to the pipe. */
if (STAT_RECORD && perf_stat.data.is_pipe) if (STAT_RECORD && perf_stat.data.is_pipe)
return; return;
if (stat_config.quiet) if (quiet)
return; return;
evlist__print_counters(evsel_list, &stat_config, &target, ts, argc, argv); evlist__print_counters(evsel_list, &stat_config, &target, ts, argc, argv);
...@@ -1283,8 +1283,8 @@ static struct option stat_options[] = { ...@@ -1283,8 +1283,8 @@ static struct option stat_options[] = {
"print summary for interval mode"), "print summary for interval mode"),
OPT_BOOLEAN(0, "no-csv-summary", &stat_config.no_csv_summary, OPT_BOOLEAN(0, "no-csv-summary", &stat_config.no_csv_summary,
"don't print 'summary' for CSV summary output"), "don't print 'summary' for CSV summary output"),
OPT_BOOLEAN(0, "quiet", &stat_config.quiet, OPT_BOOLEAN(0, "quiet", &quiet,
"don't print output (useful with record)"), "don't print any output, messages or warnings (useful with record)"),
OPT_CALLBACK(0, "cputype", &evsel_list, "hybrid cpu type", OPT_CALLBACK(0, "cputype", &evsel_list, "hybrid cpu type",
"Only enable events on applying cpu with this type " "Only enable events on applying cpu with this type "
"for hybrid platform (e.g. core or atom)", "for hybrid platform (e.g. core or atom)",
...@@ -2383,7 +2383,7 @@ int cmd_stat(int argc, const char **argv) ...@@ -2383,7 +2383,7 @@ int cmd_stat(int argc, const char **argv)
goto out; goto out;
} }
if (!output && !stat_config.quiet) { if (!output && !quiet) {
struct timespec tm; struct timespec tm;
mode = append_file ? "a" : "w"; mode = append_file ? "a" : "w";
......
...@@ -160,7 +160,6 @@ struct perf_stat_config { ...@@ -160,7 +160,6 @@ struct perf_stat_config {
bool metric_no_group; bool metric_no_group;
bool metric_no_merge; bool metric_no_merge;
bool stop_read_counter; bool stop_read_counter;
bool quiet;
bool iostat_run; bool iostat_run;
char *user_requested_cpu_list; char *user_requested_cpu_list;
bool system_wide; bool system_wide;
......
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