On Thu, 8 Aug 2019, Christoph Hellwig wrote: > On Thu, Aug 08, 2019 at 09:02:47AM +0200, Thomas Gleixner wrote: > > > > mm/slub.c: bit_spin_lock(PG_locked, &page->flags); > > > > > > One caller ouf of a gazillion that spins on the page lock instead of > > > sleepign on it like everyone else. That should not have passed your > > > smell test to start with :) > > > > I surely stared at it, but that cannot sleep. It's in the middle of a > > preempt and interrupt disabled region and used on architectures which do > > not support CMPXCHG_DOUBLE and ALIGNED_STRUCT_PAGE ... > > I know. But the problem here is that normally PG_locked is used together > with wait_on_page_bit_*, but this one instances uses the bit spinlock > helpers. This is the equivalent of calling spin_lock on a struct mutex > rather than having a mutex_lock_spin helper for this case.
Yes, I know :( > Does SLUB work on -rt at all? It's the only allocator we support with a few tweaks :) Thanks, tglx