mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
perf evlist: Store pointer to the cpu and thread maps
So that we don't have to pass it around to the several methods that needs it, simplifying usage. There is one case where we don't have the thread/cpu map in advance, which is in the parsing routines used by top, stat, record, that we have to wait till all options are parsed to know if a cpu or thread list was passed to then create those maps. For that case consolidate the cpu and thread map creation via perf_evlist__create_maps() out of the code in top and record, while also providing a perf_evlist__set_maps() for cases where multiple evlists share maps or for when maps that represent CPU sockets, for instance, get crafted out of topology information or subsets of threads in a particular application are to be monitored, providing more granularity in specifying which cpus and threads to monitor. Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Tom Zanussi <tzanussi@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
f8a9530939
commit
7e2ed09753
8 changed files with 148 additions and 119 deletions
|
@ -23,9 +23,9 @@ def main():
|
|||
sample_id_all = 1,
|
||||
sample_type = perf.SAMPLE_PERIOD | perf.SAMPLE_TID | perf.SAMPLE_CPU | perf.SAMPLE_TID)
|
||||
evsel.open(cpus = cpus, threads = threads);
|
||||
evlist = perf.evlist()
|
||||
evlist = perf.evlist(cpus, threads)
|
||||
evlist.add(evsel)
|
||||
evlist.mmap(cpus = cpus, threads = threads)
|
||||
evlist.mmap()
|
||||
while True:
|
||||
evlist.poll(timeout = -1)
|
||||
for cpu in cpus:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue