perf evsel: Rearrange perf_evsel__config_leader_sampling()
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 1 Apr 2020 10:16:11 +0000 (13:16 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Sat, 18 Apr 2020 12:05:00 +0000 (09:05 -0300)
In preparation for adding support for leader sampling with AUX area events.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lore.kernel.org/lkml/20200401101613.6201-15-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/record.c

index 8870ae4..32aeeb8 100644 (file)
@@ -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,