Ian Rogers
e9ca57d711
libperf cpumap: Remove perf_cpu_map__read()
...
Function is no longer used and duplicates the parsing logic from
perf_cpu_map__new().
Remove to allow simplification.
Reviewed-by: Leo Yan <[email protected] >
Signed-off-by: Ian Rogers <[email protected] >
Cc: Adrian Hunter <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Ben Gainey <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: James Clark <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: Kan Liang <[email protected] >
Cc: Kyle Meyer <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Link: https://lore.kernel.org/r/[email protected]
[ Applied manually to cope with "libperf cpumap: Refactor perf_cpu_map__merge()" ]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2024-12-09 17:52:41 -03:00
Ian Rogers
b6b4a62d85
libperf cpumap: Add any, empty and min helpers
...
Additional helpers to better replace perf_cpu_map__has_any_cpu_or_is_empty().
Signed-off-by: Ian Rogers <[email protected] >
Acked-by: Namhyung Kim <[email protected] >
Cc: Adrian Hunter <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Alexandre Ghiti <[email protected] >
Cc: Andrew Jones <[email protected] >
Cc: André Almeida <[email protected] >
Cc: Athira Rajeev <[email protected] >
Cc: Atish Patra <[email protected] >
Cc: Changbin Du <[email protected] >
Cc: Darren Hart <[email protected] >
Cc: Davidlohr Bueso <[email protected] >
Cc: Huacai Chen <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: James Clark <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: John Garry <[email protected] >
Cc: K Prateek Nayak <[email protected] >
Cc: Kajol Jain <[email protected] >
Cc: Kan Liang <[email protected] >
Cc: Leo Yan <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Mike Leach <[email protected] >
Cc: Nick Desaulniers <[email protected] >
Cc: Paolo Bonzini <[email protected] >
Cc: Paran Lee <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Ravi Bangoria <[email protected] >
Cc: Sandipan Das <[email protected] >
Cc: Sean Christopherson <[email protected] >
Cc: Steinar H. Gunderson <[email protected] >
Cc: Suzuki Poulouse <[email protected] >
Cc: Thomas Gleixner <[email protected] >
Cc: Will Deacon <[email protected] >
Cc: Yang Jihong <[email protected] >
Cc: Yang Li <[email protected] >
Cc: Yanteng Si <[email protected] >
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2024-03-21 10:41:28 -03:00
Ian Rogers
923ca62a7b
libperf cpumap: Rename perf_cpu_map__empty() to perf_cpu_map__has_any_cpu_or_is_empty()
...
The name perf_cpu_map_empty is misleading as true is also returned
when the map contains an "any" CPU (aka dummy) map.
Rename to perf_cpu_map__has_any_cpu_or_is_empty(), later changes will
(re)introduce perf_cpu_map__empty() and perf_cpu_map__has_any_cpu().
Reviewed-by: James Clark <[email protected] >
Signed-off-by: Ian Rogers <[email protected] >
Cc: Adrian Hunter <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Alexandre Ghiti <[email protected] >
Cc: Andrew Jones <[email protected] >
Cc: André Almeida <[email protected] >
Cc: Athira Jajeev <[email protected] >
Cc: Atish Patra <[email protected] >
Cc: Changbin Du <[email protected] >
Cc: Darren Hart <[email protected] >
Cc: Davidlohr Bueso <[email protected] >
Cc: Huacai Chen <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: John Garry <[email protected] >
Cc: K Prateek Nayak <[email protected] >
Cc: Kajol Jain <[email protected] >
Cc: Kan Liang <[email protected] >
Cc: Leo Yan <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Mike Leach <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Nick Desaulniers <[email protected] >
Cc: Paolo Bonzini <[email protected] >
Cc: Paran Lee <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Ravi Bangoria <[email protected] >
Cc: Sandipan Das <[email protected] >
Cc: Sean Christopherson <[email protected] >
Cc: Steinar H. Gunderson <[email protected] >
Cc: Suzuki Poulouse <[email protected] >
Cc: Thomas Gleixner <[email protected] >
Cc: Will Deacon <[email protected] >
Cc: Yang Jihong <[email protected] >
Cc: Yang Li <[email protected] >
Cc: Yanteng Si <[email protected] >
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2023-12-12 14:55:13 -03:00
Ian Rogers
8f60f870a9
libperf cpumap: Rename perf_cpu_map__default_new() to perf_cpu_map__new_online_cpus() and prefer sysfs
...
Rename perf_cpu_map__default_new() to perf_cpu_map__new_online_cpus() to
better indicate what the implementation does.
Read the online CPUs from /sys/devices/system/cpu/online first before
using sysconf() as it can't accurately configure holes in the CPU map.
If sysconf() is used, warn when the configured and online processors
disagree.
When reading from a file, if the read doesn't yield a CPU map then
return an empty map rather than the default online. This avoids
recursion but also better yields being able to detect failures.
Add more comments.
Reviewed-by: James Clark <[email protected] >
Signed-off-by: Ian Rogers <[email protected] >
Cc: Adrian Hunter <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Alexandre Ghiti <[email protected] >
Cc: Andrew Jones <[email protected] >
Cc: André Almeida <[email protected] >
Cc: Athira Jajeev <[email protected] >
Cc: Atish Patra <[email protected] >
Cc: Changbin Du <[email protected] >
Cc: Darren Hart <[email protected] >
Cc: Davidlohr Bueso <[email protected] >
Cc: Huacai Chen <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: John Garry <[email protected] >
Cc: K Prateek Nayak <[email protected] >
Cc: Kajol Jain <[email protected] >
Cc: Kan Liang <[email protected] >
Cc: Leo Yan <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Mike Leach <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Nick Desaulniers <[email protected] >
Cc: Paolo Bonzini <[email protected] >
Cc: Paran Lee <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Ravi Bangoria <[email protected] >
Cc: Sandipan Das <[email protected] >
Cc: Sean Christopherson <[email protected] >
Cc: Steinar H. Gunderson <[email protected] >
Cc: Suzuki Poulouse <[email protected] >
Cc: Thomas Gleixner <[email protected] >
Cc: Will Deacon <[email protected] >
Cc: Yang Jihong <[email protected] >
Cc: Yang Li <[email protected] >
Cc: Yanteng Si <[email protected] >
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
[ s/syfs/sysfs/g typo ]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2023-12-12 14:54:51 -03:00
Ian Rogers
48219b089d
libperf cpumap: Rename perf_cpu_map__dummy_new() to perf_cpu_map__new_any_cpu()
...
Rename perf_cpu_map__dummy_new() to perf_cpu_map__new_any_cpu() to
better indicate this is creating a CPU map for the perf_event_open "any"
CPU case.
Reviewed-by: James Clark <[email protected] >
Signed-off-by: Ian Rogers <[email protected] >
Cc: Adrian Hunter <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Alexandre Ghiti <[email protected] >
Cc: Andrew Jones <[email protected] >
Cc: André Almeida <[email protected] >
Cc: Athira Jajeev <[email protected] >
Cc: Atish Patra <[email protected] >
Cc: Changbin Du <[email protected] >
Cc: Darren Hart <[email protected] >
Cc: Davidlohr Bueso <[email protected] >
Cc: Huacai Chen <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: John Garry <[email protected] >
Cc: K Prateek Nayak <[email protected] >
Cc: Kajol Jain <[email protected] >
Cc: Kan Liang <[email protected] >
Cc: Leo Yan <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Mike Leach <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Nick Desaulniers <[email protected] >
Cc: Paolo Bonzini <[email protected] >
Cc: Paran Lee <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Ravi Bangoria <[email protected] >
Cc: Sandipan Das <[email protected] >
Cc: Sean Christopherson <[email protected] >
Cc: Steinar H. Gunderson <[email protected] >
Cc: Suzuki Poulouse <[email protected] >
Cc: Thomas Gleixner <[email protected] >
Cc: Will Deacon <[email protected] >
Cc: Yang Jihong <[email protected] >
Cc: Yang Li <[email protected] >
Cc: Yanteng Si <[email protected] >
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2023-12-12 14:01:47 -03:00
Tzvetomir Stoyanov (VMware)
56dce86819
libperf: Add API for allocating new thread map array
...
The existing API perf_thread_map__new_dummy() allocates new thread map
for one thread. I couldn't find a way to reallocate the map with more
threads, or to allocate a new map for more than one thread.
Having multiple threads in a thread map is essential for some use cases.
That's why a new API is proposed, which allocates a new thread map for
given number of threads: perf_thread_map__new_array()
Signed-off-by: Tzvetomir Stoyanov (VMware) <[email protected] >
Acked-by: Jiri Olsa <[email protected] >
Cc: Ian Rogers <[email protected] >
Link: https://lore.kernel.org/linux-perf-users/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2022-02-23 14:40:23 -03:00
Jiri Olsa
30d1c4d947
libperf: Fix perf_cpu_map__for_each_cpu macro
...
Tzvetomir Stoyanov reported an issue with using macro
perf_cpu_map__for_each_cpu using private perf_cpu object.
The issue is caused by recent change that wrapped cpu in struct perf_cpu
to distinguish it from cpu indexes. We need to make struct perf_cpu
public.
Add a simple test for using the perf_cpu_map__for_each_cpu macro.
Fixes: 6d18804b96 ("perf cpumap: Give CPUs their own type")
Reported-by: Tzvetomir Stoyanov (VMware) <[email protected] >
Signed-off-by: Jiri Olsa <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Ian Rogers <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Link: http://lore.kernel.org/lkml/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2022-02-16 13:49:25 -03:00
Ian Rogers
dfc66beff7
perf cpumap: Move 'has' function to libperf
...
Make the cpu map argument const for consistency with the rest of the
API. Modify cpu_map__idx accordingly.
Reviewed-by: James Clark <[email protected] >
Signed-off-by: Ian Rogers <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Andi Kleen <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: John Garry <[email protected] >
Cc: Kajol Jain <[email protected] >
Cc: Kan Liang <[email protected] >
Cc: Leo Yan <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Mathieu Poirier <[email protected] >
Cc: Mike Leach <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Paul Clarke <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Riccardo Mancini <[email protected] >
Cc: Stephane Eranian <[email protected] >
Cc: Suzuki Poulouse <[email protected] >
Cc: Vineet Singh <[email protected] >
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2022-01-12 14:28:22 -03:00
Shunsuke Nakamura
9a5b2d1afa
libperf: Adopt perf_counts_values__scale() from tools/perf/util
...
Move perf_counts_values__scale() from tools/perf/util to tools/lib/perf
so that it can be used with libperf.
Committer notes:
As noted by Jiri, use __s8 instead of s8 on the exported function.
Signed-off-by: Shunsuke Nakamura <[email protected] >
Acked-by: Jiri Olsa <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Ingo Molnar <[email protected] >
Cc: Jiri Olsa <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Rob Herring <[email protected] >
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2021-12-07 22:18:23 -03:00
Jiri Olsa
2e6263ab54
libperf: Adopt evlist__set_leader() from tools/perf as perf_evlist__set_leader()
...
Move the implementation of evlist__set_leader() to a new libperf
perf_evlist__set_leader() function with the same functionality make it a
libperf exported API.
Signed-off-by: Jiri Olsa <[email protected] >
Requested-by: Shunsuke Nakamura <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Ian Rogers <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Michael Petlan <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Link: http://lore.kernel.org/lkml/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2021-07-09 14:04:32 -03:00
Rob Herring
6cd70754f2
libperf: Add evsel mmap support
...
In order to support usersapce access, an event must be mmapped. While
there's already mmap support for evlist, the usecase is a bit different
than the self monitoring with userspace access. So let's add new
perf_evsel__mmap()/perf_evsel_munmap() functions to mmap/munmap an
evsel. This allows implementing userspace access as a fastpath for
perf_evsel__read().
The mmapped address is returned by perf_evsel__mmap_base() which
primarily for users/tests to check if userspace access is enabled.
Signed-off-by: Rob Herring <[email protected] >
Acked-by: Jiri Olsa <[email protected] >
Acked-by: Namhyung Kim <[email protected] >
Cc: Catalin Marinas <[email protected] >
Cc: Itaru Kitayama <[email protected] >
Cc: Mark Rutland <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Cc: Will Deacon <[email protected] >
Link: http://lore.kernel.org/lkml/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2021-04-15 16:38:51 -03:00
Jiri Olsa
3ce311afb5
libperf: Move to tools/lib/perf
...
Move libperf from its current location under tools/perf to a separate
directory under tools/lib/.
Also change various paths (mainly includes) to reflect the libperf move
to a separate directory and add a new directory under MANIFEST.
Signed-off-by: Jiri Olsa <[email protected] >
Tested-by: Arnaldo Carvalho de Melo <[email protected] >
Cc: Alexander Shishkin <[email protected] >
Cc: Michael Petlan <[email protected] >
Cc: Namhyung Kim <[email protected] >
Cc: Peter Zijlstra <[email protected] >
Link: http://lore.kernel.org/lkml/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected] >
2020-01-06 11:46:09 -03:00