]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
selftests/perf_events: Add a mmap() correctness test
authorLorenzo Stoakes <lorenzo.stoakes@oracle.com>
Sat, 2 Aug 2025 20:55:35 +0000 (22:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 10:09:05 +0000 (12:09 +0200)
commit29d417b1a0d591ff652740f9e6aa1bee9f793107
tree594120f3f7d4afaf2588cb02e650e2cf597e658f
parent6757a31a8e295ae4f01717a954afda173f25a121
selftests/perf_events: Add a mmap() correctness test

commit 084d2ac4030c5919e85bba1f4af26e33491469cb upstream.

Exercise various mmap(), munmap() and mremap() invocations, which might
cause a perf buffer mapping to be split or truncated.

To avoid hard coding the perf event and having dependencies on
architectures and configuration options, scan through event types in sysfs
and try to open them. On success, try to mmap() and if that succeeds try to
mmap() the AUX buffer.

In case that no AUX buffer supporting event is found, only test the base
buffer mapping. If no mappable event is found or permissions are not
sufficient, skip the tests.

Reserve a PROT_NONE region for both rb and aux tests to allow testing the
case where mremap unmaps beyond the end of a mapped VMA to prevent it from
unmapping unrelated mappings.

Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Co-developed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/perf_events/.gitignore
tools/testing/selftests/perf_events/Makefile
tools/testing/selftests/perf_events/mmap.c [new file with mode: 0644]