Re: [REGRESSION] osnoise: "eventpoll: Replace rwlock with spinlock" causes ~50us noise spikes on isolated PREEMPT_RT cores

From: Ionut Nechita (Wind River)

Date: Thu Apr 02 2026 - 05:05:58 EST


From: Ionut Nechita <ionut.nechita@xxxxxxxxxxxxx>

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