linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 00/14] Clean up libperf cpumap's empty function
@ 2023-11-29  6:01 Ian Rogers
  2023-11-29  6:01 ` [PATCH v1 01/14] libperf cpumap: Rename perf_cpu_map__dummy_new Ian Rogers
                   ` (16 more replies)
  0 siblings, 17 replies; 45+ messages in thread
From: Ian Rogers @ 2023-11-29  6:01 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Ian Rogers, Adrian Hunter, Suzuki K Poulose, Mike Leach,
	James Clark, Leo Yan, John Garry, Will Deacon, Thomas Gleixner,
	Darren Hart, Davidlohr Bueso, André Almeida, Kan Liang,
	K Prateek Nayak, Sean Christopherson, Paolo Bonzini, Kajol Jain,
	Athira Rajeev, Andrew Jones, Alexandre Ghiti, Atish Patra,
	Steinar H. Gunderson, Yang Jihong, Yang Li, Changbin Du,
	Sandipan Das, Ravi Bangoria, Paran Lee, Nick Desaulniers,
	Huacai Chen, Yanteng Si, linux-perf-users, linux-kernel,
	coresight, linux-arm-kernel, bpf

Rename and clean up the use of libperf CPU map functions particularly
focussing on perf_cpu_map__empty that may return true for maps
containing CPUs but also with an "any CPU"/dummy value.

perf_cpu_map__nr is also troubling in that iterating an empty CPU map
will yield the "any CPU"/dummy value. Reduce the appearance of some
calls to this by using the perf_cpu_map__for_each_cpu macro.

Ian Rogers (14):
  libperf cpumap: Rename perf_cpu_map__dummy_new
  libperf cpumap: Rename and prefer sysfs for perf_cpu_map__default_new
  libperf cpumap: Rename perf_cpu_map__empty
  libperf cpumap: Replace usage of perf_cpu_map__new(NULL)
  libperf cpumap: Add for_each_cpu that skips the "any CPU" case
  libperf cpumap: Add any, empty and min helpers
  perf arm-spe/cs-etm: Directly iterate CPU maps
  perf intel-pt/intel-bts: Switch perf_cpu_map__has_any_cpu_or_is_empty
    use
  perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_empty
  perf top: Avoid repeated function calls
  perf arm64 header: Remove unnecessary CPU map get and put
  perf stat: Remove duplicate cpus_map_matched function
  perf cpumap: Use perf_cpu_map__for_each_cpu when possible
  libperf cpumap: Document perf_cpu_map__nr's behavior

 .../perf/Documentation/examples/sampling.c    |  2 +-
 .../perf/Documentation/libperf-sampling.txt   |  2 +-
 tools/lib/perf/Documentation/libperf.txt      |  4 +-
 tools/lib/perf/cpumap.c                       | 92 +++++++++++++------
 tools/lib/perf/evlist.c                       |  6 +-
 tools/lib/perf/evsel.c                        |  2 +-
 tools/lib/perf/include/perf/cpumap.h          | 56 ++++++++++-
 tools/lib/perf/libperf.map                    | 10 +-
 tools/lib/perf/tests/test-cpumap.c            |  4 +-
 tools/lib/perf/tests/test-evlist.c            |  6 +-
 tools/lib/perf/tests/test-evsel.c             |  2 +-
 tools/perf/arch/arm/util/cs-etm.c             | 83 +++++++----------
 tools/perf/arch/arm64/util/arm-spe.c          |  4 +-
 tools/perf/arch/arm64/util/header.c           | 15 +--
 tools/perf/arch/x86/util/intel-bts.c          |  4 +-
 tools/perf/arch/x86/util/intel-pt.c           | 10 +-
 tools/perf/bench/epoll-ctl.c                  |  2 +-
 tools/perf/bench/epoll-wait.c                 |  2 +-
 tools/perf/bench/futex-hash.c                 |  2 +-
 tools/perf/bench/futex-lock-pi.c              |  2 +-
 tools/perf/bench/futex-requeue.c              |  2 +-
 tools/perf/bench/futex-wake-parallel.c        |  2 +-
 tools/perf/bench/futex-wake.c                 |  2 +-
 tools/perf/builtin-c2c.c                      |  6 +-
 tools/perf/builtin-ftrace.c                   |  2 +-
 tools/perf/builtin-record.c                   |  4 +-
 tools/perf/builtin-stat.c                     | 31 +------
 tools/perf/tests/bitmap.c                     | 13 +--
 tools/perf/tests/code-reading.c               |  2 +-
 tools/perf/tests/cpumap.c                     |  2 +-
 tools/perf/tests/keep-tracking.c              |  2 +-
 tools/perf/tests/mmap-basic.c                 |  2 +-
 tools/perf/tests/openat-syscall-all-cpus.c    |  2 +-
 tools/perf/tests/perf-time-to-tsc.c           |  2 +-
 tools/perf/tests/sw-clock.c                   |  2 +-
 tools/perf/tests/switch-tracking.c            |  2 +-
 tools/perf/tests/task-exit.c                  |  2 +-
 tools/perf/tests/topology.c                   | 48 +++++-----
 tools/perf/util/auxtrace.c                    |  4 +-
 tools/perf/util/bpf_counter.c                 |  2 +-
 tools/perf/util/bpf_kwork.c                   | 16 ++--
 tools/perf/util/bpf_kwork_top.c               | 12 +--
 tools/perf/util/cpumap.c                      | 14 ++-
 tools/perf/util/cputopo.c                     |  2 +-
 tools/perf/util/evlist.c                      |  4 +-
 tools/perf/util/evsel.c                       |  2 +-
 tools/perf/util/perf_api_probe.c              |  4 +-
 tools/perf/util/record.c                      |  4 +-
 .../scripting-engines/trace-event-python.c    | 12 ++-
 tools/perf/util/session.c                     |  5 +-
 tools/perf/util/stat.c                        |  2 +-
 tools/perf/util/svghelper.c                   | 20 ++--
 tools/perf/util/top.c                         |  9 +-
 53 files changed, 296 insertions(+), 254 deletions(-)

-- 
2.43.0.rc1.413.gea7ed67945-goog


^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2024-02-01 11:06 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-29  6:01 [PATCH v1 00/14] Clean up libperf cpumap's empty function Ian Rogers
2023-11-29  6:01 ` [PATCH v1 01/14] libperf cpumap: Rename perf_cpu_map__dummy_new Ian Rogers
2023-12-12 11:20   ` James Clark
2023-11-29  6:01 ` [PATCH v1 02/14] libperf cpumap: Rename and prefer sysfs for perf_cpu_map__default_new Ian Rogers
2023-12-12 11:32   ` James Clark
2023-12-12 17:39   ` Arnaldo Carvalho de Melo
2023-12-12 17:52     ` Ian Rogers
2023-11-29  6:02 ` [PATCH v1 03/14] libperf cpumap: Rename perf_cpu_map__empty Ian Rogers
2023-12-12 11:38   ` James Clark
2023-11-29  6:02 ` [PATCH v1 04/14] libperf cpumap: Replace usage of perf_cpu_map__new(NULL) Ian Rogers
2023-12-12 11:44   ` James Clark
2023-11-29  6:02 ` [PATCH v1 05/14] libperf cpumap: Add for_each_cpu that skips the "any CPU" case Ian Rogers
2023-12-12 13:54   ` James Clark
2023-11-29  6:02 ` [PATCH v1 06/14] libperf cpumap: Add any, empty and min helpers Ian Rogers
2023-12-12 14:00   ` James Clark
2023-12-12 14:51     ` James Clark
2023-12-12 20:02     ` Ian Rogers
2023-12-12 15:06   ` James Clark
2023-12-12 20:27     ` Ian Rogers
2023-12-13 13:48       ` James Clark
2023-11-29  6:02 ` [PATCH v1 07/14] perf arm-spe/cs-etm: Directly iterate CPU maps Ian Rogers
2023-12-12 14:17   ` James Clark
2023-12-12 14:36     ` James Clark
2024-02-01  2:12       ` Ian Rogers
2024-02-01 11:06         ` James Clark
2023-11-29  6:02 ` [PATCH v1 08/14] perf intel-pt/intel-bts: Switch perf_cpu_map__has_any_cpu_or_is_empty use Ian Rogers
2023-11-29  6:02 ` [PATCH v1 09/14] perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_empty Ian Rogers
2023-12-12 15:10   ` James Clark
2023-11-29  6:02 ` [PATCH v1 10/14] perf top: Avoid repeated function calls Ian Rogers
2023-12-12 15:11   ` James Clark
2023-12-18 20:34     ` Arnaldo Carvalho de Melo
2023-11-29  6:02 ` [PATCH v1 11/14] perf arm64 header: Remove unnecessary CPU map get and put Ian Rogers
2023-12-12 15:13   ` James Clark
2023-11-29  6:02 ` [PATCH v1 12/14] perf stat: Remove duplicate cpus_map_matched function Ian Rogers
2023-12-12 11:28   ` James Clark
2023-11-29  6:02 ` [PATCH v1 13/14] perf cpumap: Use perf_cpu_map__for_each_cpu when possible Ian Rogers
2023-12-12 11:25   ` James Clark
2023-11-29  6:02 ` [PATCH v1 14/14] libperf cpumap: Document perf_cpu_map__nr's behavior Ian Rogers
2023-12-12 15:20   ` James Clark
2023-12-18 20:36     ` Arnaldo Carvalho de Melo
2023-12-11 19:31 ` [PATCH v1 00/14] Clean up libperf cpumap's empty function Ian Rogers
2023-12-12 17:59 ` Arnaldo Carvalho de Melo
2023-12-13 12:48   ` Adrian Hunter
2023-12-14 13:49     ` Arnaldo Carvalho de Melo
2023-12-13 23:29 ` Namhyung Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).