Messages in this thread | | | Date | Wed, 27 May 2020 12:44:44 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH V7 10/15] perf evlist: Disable 'immediate' events last |
| |
Em Tue, May 12, 2020 at 03:19:17PM +0300, Adrian Hunter escreveu: > Events marked as 'immediate' are started before other events to ensure > that there is context at the start of the main tracing events. The same > is true at the end of tracing, so disable 'immediate' events after other > events.
Applied, thanks,
- Arnaldo
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> > --- > tools/perf/util/evlist.c | 31 +++++++++++++++++++++---------- > 1 file changed, 21 insertions(+), 10 deletions(-) > > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > index 2a9de6491700..173b4f0e0e6e 100644 > --- a/tools/perf/util/evlist.c > +++ b/tools/perf/util/evlist.c > @@ -380,22 +380,33 @@ void evlist__disable(struct evlist *evlist) > { > struct evsel *pos; > struct affinity affinity; > - int cpu, i; > + int cpu, i, imm = 0; > + bool has_imm = false; > > if (affinity__setup(&affinity) < 0) > return; > > - evlist__for_each_cpu(evlist, i, cpu) { > - affinity__set(&affinity, cpu); > - > - evlist__for_each_entry(evlist, pos) { > - if (evsel__cpu_iter_skip(pos, cpu)) > - continue; > - if (pos->disabled || !evsel__is_group_leader(pos) || !pos->core.fd) > - continue; > - evsel__disable_cpu(pos, pos->cpu_iter - 1); > + /* Disable 'immediate' events last */ > + for (imm = 0; imm <= 1; imm++) { > + evlist__for_each_cpu(evlist, i, cpu) { > + affinity__set(&affinity, cpu); > + > + evlist__for_each_entry(evlist, pos) { > + if (evsel__cpu_iter_skip(pos, cpu)) > + continue; > + if (pos->disabled || !evsel__is_group_leader(pos) || !pos->core.fd) > + continue; > + if (pos->immediate) > + has_imm = true; > + if (pos->immediate != imm) > + continue; > + evsel__disable_cpu(pos, pos->cpu_iter - 1); > + } > } > + if (!has_imm) > + break; > } > + > affinity__cleanup(&affinity); > evlist__for_each_entry(evlist, pos) { > if (!evsel__is_group_leader(pos) || !pos->core.fd) > -- > 2.17.1 >
--
- Arnaldo
| |