Commit 7d9ad16a authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

perf stat: Add 'identifier' flag to 'struct perf_stat_config'

Add 'identifier' flag to 'struct perf_stat_config' to carry the info
whether to use PERF_SAMPLE_IDENTIFIER for events.

This makes create_perf_stat_counter() independent.
Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20180830063252.23729-6-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 35386233
...@@ -261,16 +261,7 @@ static int create_perf_stat_counter(struct perf_evsel *evsel, ...@@ -261,16 +261,7 @@ static int create_perf_stat_counter(struct perf_evsel *evsel,
*/ */
attr->sample_period = 0; attr->sample_period = 0;
/* if (config->identifier)
* But set sample_type to PERF_SAMPLE_IDENTIFIER, which should be harmless
* while avoiding that older tools show confusing messages.
*
* However for pipe sessions we need to keep it zero,
* because script's perf_evsel__check_attr is triggered
* by attr->sample_type != 0, and we can't run it on
* stat sessions.
*/
if (!(STAT_RECORD && perf_stat.data.is_pipe))
attr->sample_type = PERF_SAMPLE_IDENTIFIER; attr->sample_type = PERF_SAMPLE_IDENTIFIER;
/* /*
...@@ -3064,6 +3055,17 @@ int cmd_stat(int argc, const char **argv) ...@@ -3064,6 +3055,17 @@ int cmd_stat(int argc, const char **argv)
if (perf_stat_init_aggr_mode()) if (perf_stat_init_aggr_mode())
goto out; goto out;
/*
* Set sample_type to PERF_SAMPLE_IDENTIFIER, which should be harmless
* while avoiding that older tools show confusing messages.
*
* However for pipe sessions we need to keep it zero,
* because script's perf_evsel__check_attr is triggered
* by attr->sample_type != 0, and we can't run it on
* stat sessions.
*/
stat_config.identifier = !(STAT_RECORD && perf_stat.data.is_pipe);
/* /*
* We dont want to block the signals - that would cause * We dont want to block the signals - that would cause
* child tasks to inherit that and Ctrl-C would not work. * child tasks to inherit that and Ctrl-C would not work.
......
...@@ -89,6 +89,7 @@ struct perf_stat_config { ...@@ -89,6 +89,7 @@ struct perf_stat_config {
enum aggr_mode aggr_mode; enum aggr_mode aggr_mode;
bool scale; bool scale;
bool no_inherit; bool no_inherit;
bool identifier;
FILE *output; FILE *output;
unsigned int interval; unsigned int interval;
unsigned int timeout; unsigned int timeout;
......
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