From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Andi Kleen <andi@firstfloor.org>
Cc: jolsa@kernel.org, linux-kernel@vger.kernel.org,
alexey.budankov@linux.intel.com
Subject: Re: [PATCH 1/2] perf tools: Add --quiet option to perf stat
Date: Tue, 27 Oct 2020 12:09:25 -0300 [thread overview]
Message-ID: <20201027150925.GE2479604@kernel.org> (raw)
In-Reply-To: <20201027002737.30942-1-andi@firstfloor.org>
Em Mon, Oct 26, 2020 at 05:27:36PM -0700, Andi Kleen escreveu:
> Add a new --quiet option to perf stat. This is useful with perf stat
> record to write the data only to the perf.data file, which can lower
> measurement overhead because the data doesn't need to be formatted.
>
> On my 4C desktop:
>
> % time ./perf stat record -e $(python -c 'print ",".join(["cycles"]*1000)') -a -I 1000 sleep 5
> ...
> real 0m5.377s
> user 0m0.238s
> sys 0m0.452s
> % time ./perf stat record --quiet -e $(python -c 'print ",".join(["cycles"]*1000)') -a -I 1000 sleep 5
>
> real 0m5.452s
> user 0m0.183s
> sys 0m0.423s
>
> In this example it cuts the user time by 20%. On systems with more cores
> the savings are higher.
Applied 1/2,
Thanks,
- Arnaldo
> Signed-off-by: Andi Kleen <andi@firstfloor.org>
> ---
> tools/perf/Documentation/perf-stat.txt | 4 ++++
> tools/perf/builtin-stat.c | 6 +++++-
> tools/perf/util/stat.h | 1 +
> 3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/Documentation/perf-stat.txt b/tools/perf/Documentation/perf-stat.txt
> index 9f9f29025e49..b138dd192423 100644
> --- a/tools/perf/Documentation/perf-stat.txt
> +++ b/tools/perf/Documentation/perf-stat.txt
> @@ -316,6 +316,10 @@ small group that need not have multiplexing is lowered. This option
> forbids the event merging logic from sharing events between groups and
> may be used to increase accuracy in this case.
>
> +--quiet::
> +Don't print output. This is useful with perf stat record below to only
> +write data to the perf.data file.
> +
> STAT RECORD
> -----------
> Stores stat data into perf data file.
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index b01af171d94f..743fe47e7a88 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -972,6 +972,8 @@ static void print_counters(struct timespec *ts, int argc, const char **argv)
> /* Do not print anything if we record to the pipe. */
> if (STAT_RECORD && perf_stat.data.is_pipe)
> return;
> + if (stat_config.quiet)
> + return;
>
> perf_evlist__print_counters(evsel_list, &stat_config, &target,
> ts, argc, argv);
> @@ -1171,6 +1173,8 @@ static struct option stat_options[] = {
> "threads of same physical core"),
> OPT_BOOLEAN(0, "summary", &stat_config.summary,
> "print summary for interval mode"),
> + OPT_BOOLEAN(0, "quiet", &stat_config.quiet,
> + "don't print output (useful with record)"),
> #ifdef HAVE_LIBPFM
> OPT_CALLBACK(0, "pfm-events", &evsel_list, "event",
> "libpfm4 event selector. use 'perf list' to list available events",
> @@ -2132,7 +2136,7 @@ int cmd_stat(int argc, const char **argv)
> goto out;
> }
>
> - if (!output) {
> + if (!output && !stat_config.quiet) {
> struct timespec tm;
> mode = append_file ? "a" : "w";
>
> diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
> index 487010c624be..05adf8165025 100644
> --- a/tools/perf/util/stat.h
> +++ b/tools/perf/util/stat.h
> @@ -122,6 +122,7 @@ struct perf_stat_config {
> bool metric_no_group;
> bool metric_no_merge;
> bool stop_read_counter;
> + bool quiet;
> FILE *output;
> unsigned int interval;
> unsigned int timeout;
> --
> 2.28.0
>
--
- Arnaldo
prev parent reply other threads:[~2020-10-27 16:59 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 0:27 [PATCH 1/2] perf tools: Add --quiet option to perf stat Andi Kleen
2020-10-27 0:27 ` [PATCH 2/2] perf tools: Support -x for perf stat report Andi Kleen
2020-10-27 13:09 ` Jiri Olsa
2020-10-27 15:09 ` Arnaldo Carvalho de Melo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201027150925.GE2479604@kernel.org \
--to=acme@kernel.org \
--cc=alexey.budankov@linux.intel.com \
--cc=andi@firstfloor.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.