Re: mm: ptl is not bloated if it fits in pointer

From: Kirill A. Shutemov
Date: Mon Dec 16 2013 - 08:50:16 EST


Peter Zijlstra wrote:
> On Mon, Dec 16, 2013 at 01:04:13AM -0800, Hugh Dickins wrote:
> > It's silly to force the 64-bit CONFIG_GENERIC_LOCKBREAK architectures
> > to kmalloc eight bytes for an indirect page table lock: the lock needs
> > to fit in the space that a pointer to it would occupy, not into an int.
>
> Ah, no. A spinlock is very much assumed to be 32bit, any spinlock that's
> bigger than that is bloated.
>
> For the page-frame case we do indeed not care about the strict 32bit but
> more about not being larger than a pointer, however there are already
> other users.
>
> See for instance include/linux/lockref.h and lib/lockref.c, they very
> much require the spinlock to be 32bit and the below would break that.

What about this instead? Smoke-tested.