diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c index 8870ae451cac..32aeeb8a8d00 100644 --- a/tools/perf/util/record.c +++ b/tools/perf/util/record.c @@ -172,24 +172,24 @@ static void perf_evsel__config_leader_sampling(struct evsel *evsel) struct perf_event_attr *attr = &evsel->core.attr; struct evsel *leader = evsel->leader; + if (leader == evsel || !leader->sample_read) + return; + /* * Disable sampling for all group members other * than leader in case leader 'leads' the sampling. */ - if (leader != evsel && leader->sample_read) { - attr->freq = 0; - attr->sample_freq = 0; - attr->sample_period = 0; - attr->write_backward = 0; + attr->freq = 0; + attr->sample_freq = 0; + attr->sample_period = 0; + attr->write_backward = 0; - /* - * We don't get sample for slave events, we make them - * when delivering group leader sample. Set the slave - * event to follow the master sample_type to ease up - * report. - */ - attr->sample_type = leader->core.attr.sample_type; - } + /* + * We don't get a sample for slave events, we make them when delivering + * the group leader sample. Set the slave event to follow the master + * sample_type to ease up reporting. + */ + attr->sample_type = leader->core.attr.sample_type; } void perf_evlist__config(struct evlist *evlist, struct record_opts *opts,