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

perf evsel: Disable write_backward for leader sampling group events

.. and other related fields that do not need to be enabled
for events that have sampling leader.

It fixes the perf top usage Ingo reported broken:

# perf top -e '{cycles,msr/aperf/}:S'

The 'msr/aperf/' event is configured for write_back sampling, which is
not allowed by the MSR PMU, so it fails to create the event.

Adjusting related attr test.

Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20180423090823.32309-6-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Jiri Olsa and committed by
Arnaldo Carvalho de Melo
e9add8ba 9a4a931c

+8 -2
+3
tools/perf/tests/attr/test-record-group-sampling
··· 35 35 # sampling disabled 36 36 sample_freq=0 37 37 sample_period=0 38 + freq=0 39 + write_backward=0 40 + sample_id_all=0
+5 -2
tools/perf/util/evsel.c
··· 930 930 * than leader in case leader 'leads' the sampling. 931 931 */ 932 932 if ((leader != evsel) && leader->sample_read) { 933 - attr->sample_freq = 0; 934 - attr->sample_period = 0; 933 + attr->freq = 0; 934 + attr->sample_freq = 0; 935 + attr->sample_period = 0; 936 + attr->write_backward = 0; 937 + attr->sample_id_all = 0; 935 938 } 936 939 937 940 if (opts->no_samples)