diff options
| author | vineash <vineash30640@gmail.com> | 2026-10-13 16:13:20 +0800 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2026-10-16 09:49:05 +0200 |
| commit | f5a78ecccd98a04c47cea1cd63c2a2fdce8a4b48 (patch) | |
| tree | b04656ff72be47c9ca7099be3fa0df7afdd544f3 /include/uapi/linux | |
| parent | 6350de8671b94afb7691d110f63bcda42f658a69 (diff) | |
| download | linux-next-f5a78ecccd98a04c47cea1cd63c2a2fdce8a4b48.tar.gz linux-next-f5a78ecccd98a04c47cea1cd63c2a2fdce8a4b48.zip | |
perf/x86: Don't WARN when the ext_regs_buf allocation fails
reserve_ext_regs_buffers() wraps the per-CPU ext_regs_buf allocation in
WARN_ON_ONCE(). The allocator already prints a warning with a stack dump
when a GFP_KERNEL allocation fails, so the WARN only repeats it, which
Documentation/process/coding-style.rst asks not to do. The failure is
also handled: the buffers are freed again, the event is still created,
and events that ask for SIMD or extended register sampling are rejected
with -ENOMEM in x86_pmu_hw_config() and event_simd_regs_validate().
syzkaller hit this with fault injection on next-20261002. The trigger
is a plain hardware cycles event opened while no other x86 PMU event
exists, with the allocation failed:
!per_cpu(ext_regs_buf, cpu)
WARNING: arch/x86/events/core.c:441 at reserve_ext_regs_buffers arch/x86/events/core.c:441 [inline]
WARNING: arch/x86/events/core.c:441 at x86_reserve_hardware+0x6ff/0x880 arch/x86/events/core.c:458
Call Trace:
__x86_pmu_event_init arch/x86/events/core.c:825 [inline]
x86_pmu_event_init+0x109/0xc50 arch/x86/events/core.c:3003
perf_try_init_event+0x140/0xbc0 kernel/events/core.c:13261
perf_init_event kernel/events/core.c:13365 [inline]
perf_event_alloc+0x2145/0x5680 kernel/events/core.c:13640
__do_sys_perf_event_open+0x669/0x2d40 kernel/events/core.c:14185
do_syscall_64+0x12c/0x7b0 arch/x86/entry/syscall_64.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Drop the WARN_ON_ONCE(). This matches reserve_ds_buffers() and
reserve_lbr_buffers(), which also handle allocation failure without a
warning.
Fixes: b84c96283684 ("perf/x86: Enable XMM register sampling for non-PEBS events")
Assisted-by: Claude:claude-opus-5-5 syzkaller
Signed-off-by: vineash <vineash30640@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/179187920064.3441876.15687522011658301558@gmail.com
Diffstat (limited to 'include/uapi/linux')
0 files changed, 0 insertions, 0 deletions
