Re: [patch V2 0/7] fs: Substitute bit-spinlocks for PREEMPT_RT and debugging

From: Thomas Gleixner
Date: Thu Aug 08 2019 - 03:54:34 EST


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