Re: [REGRESSION] osnoise: "eventpoll: Replace rwlock with spinlock" causes ~50us noise spikes on isolated PREEMPT_RT cores
"Ionut Nechita (Wind River)" <[email protected]> Thu, 2 Apr 2026 11:59:32 +0300
| Newsgroups | org.kernel.vger.linux-rt-users,org.kernel.vger.bpf,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
From: Ionut Nechita <[email protected]> Nam, thanks for the feedback. I agree with your analysis -- this is really two separate problems: 1. epoll_ctl D state hang on 6.18.20-rt (kernel-side) This hang does not reproduce on 7.0-rc6-next which still uses the spinlock, so something between 6.18.20 and 7.0-rc6-next fixed it. A git bisect would identify the fix. I'll try to get to it when time permits, but since this is a different issue from the original report it will be prioritized separately. 2. eosnoise self-noise on PREEMPT_RT (tool-side) You're right that the noise and IPIs measured on 7.0-rc6-next originate from eosnoise itself -- the BPF callbacks on every tracepoint hit generate ep_poll_callback() contention that the tool then measures as system noise. This is a tool problem, not a kernel regression. I'll flag this internally with my team. The fix is likely one of: switching to BPF ring buffer (BPF_MAP_TYPE_RINGBUF) which avoids the per-cpu perf buffer + epoll path entirely, using per-CPU epoll instances, polling as you suggested, or switching to a different tool altogether. Thanks to everyone for the thorough review -- it helped separate what initially looked like one problem into two distinct issues. Ionut