On 8/18/22 11:42, Christoph Lameter wrote: > On Wed, 17 Aug 2022, Sebastian Andrzej Siewior wrote: > >> + * On PREEMPT_RT, the local lock neither disables interrupts nor preemption >> + * which means the lockless fastpath cannot be used as it might interfere with >> + * an in-progress slow path operations. In this case the local lock is always >> + * taken but it still utilizes the freelist for the common operations. > > The slub fastpath does not interfere with slow path operations and the That's true on !PREEMPT_RT because a slowpath operation under local_lock_irqsave() will disable interrupts, so there can't be a fastpath operation in an interrupt handler appearing in the middle of a slowpath operation. On PREEMPT_RT local_lock_irqsave() doesn't actually disable interrupts, so that can happen. IIRC we learned that the hard way when Mike Galbraith was testing early versions of my PREEMPT_RT changes for SLUB. > fastpath does not require disabling preemption or interrupts if the > processor supports local rmv operations. So you should be able to use the > fastpath on PREEMPT_RT. > > If the fastpath is not possible then you need to disable preemption and > eventually take locks etc and then things may get a bit more complicated. Yeah that's basically the solution for PREEMPT_RT, take the local_lock.