public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

      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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox