[PATCH v2 0/4] Tidy user rdpmc documentation and testing

From: Ian Rogers
Date: Thu Jun 09 2022 - 01:24:11 EST


libperf's perf_mmap__read_self and the addition of arm64 support mean
that the perf_event.h and the rdpmc perf test have become
stale. Refresh the documentation in perf_event.h, remove the x86 rdpmc
test and port the libperf test as a non-architecture specific test.

Address sanitizer testing showed libperf leaking fds when the
perf_event_open failed, add error paths to handle this.

A comment is added to perf_event.h to avoid a divide by zero when
scaling counts if the running time is 0. This was previously discussed
in this thread:
https://lore.kernel.org/lkml/CAP-5=fVRdqvswtyQMg5cB+ntTGda+SAYskjTQednEH-AeZo13g@xxxxxxxxxxxxxx/

v2. Alters the skip in test_stat_user_read for open to always be a
skip as perf_event_open may fail with EACCES (permissions), ENOSYS
(not supported) and ENOENT (hypervisor). Adds Rob Herring's
acked-by on patch 3.

Ian Rogers (4):
libperf evsel: Open shouldn't leak fd on failure
perf: Align user space counter reading with code
perf test: Remove x86 rdpmc test
perf test: Add user space counter reading tests

include/uapi/linux/perf_event.h | 32 +++--
tools/include/uapi/linux/perf_event.h | 32 +++--
tools/lib/perf/evsel.c | 17 ++-
tools/perf/arch/x86/tests/Build | 1 -
tools/perf/arch/x86/tests/arch-tests.c | 2 -
tools/perf/arch/x86/tests/rdpmc.c | 182 -------------------------
tools/perf/tests/mmap-basic.c | 127 ++++++++++++++++-
7 files changed, 176 insertions(+), 217 deletions(-)
delete mode 100644 tools/perf/arch/x86/tests/rdpmc.c

--
2.36.1.255.ge46751e96f-goog