Messages in this thread | | | Date | Wed, 11 May 2022 10:03:13 +0300 | Subject | Re: [PATCH V2 21/23] libperf evsel: Add comments for booleans | From | Adrian Hunter <> |
| |
On 6/05/22 23:51, Ian Rogers wrote: > On Fri, May 6, 2022 at 5:26 AM Adrian Hunter <adrian.hunter@intel.com> wrote: >> >> Add comments for 'system_wide' and 'requires_cpu' booleans >> >> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> >> --- >> tools/lib/perf/include/internal/evsel.h | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/tools/lib/perf/include/internal/evsel.h b/tools/lib/perf/include/internal/evsel.h >> index 77fbb8b97e5c..cc8f1ba790bd 100644 >> --- a/tools/lib/perf/include/internal/evsel.h >> +++ b/tools/lib/perf/include/internal/evsel.h >> @@ -49,7 +49,16 @@ struct perf_evsel { >> >> /* parse modifier helper */ >> int nr_members; >> + /* >> + * system_wide is for events that need to be on every CPU, irrespective >> + * of user requested CPUs or threads. Map propagation will not override >> + * this events own_cpus, which will contribute to evlist all_cpus. > > So this muddies my understanding of cpus and own_cpus (sigh, again > undocumented). I believe cpus to be the set of CPUs (or any CPU, aka > dummy) that perf_event_open happens on. all_cpus in evlist is the > union of all the evsels cpus (ie not related to own_cpus as described > here). Own_cpus I believe to be what's computed at parse-event time > from sysfs. Is this a typo in the comment or quite likely my error?
A 'system_wide' event is not created by the parser, so own_cpus is set by the code adding the event.
> > Thanks, > Ian > >> + */ >> bool system_wide; >> + /* >> + * Some events, for example uncore events, require a CPU. >> + * i.e. it cannot be the 'any CPU' value of -1. >> + */ >> bool requires_cpu; >> int idx; >> }; >> -- >> 2.25.1 >>
| |