Re: [PATCH v5 03/78] xarray: Add the xa_lock to the radix_tree_root

From: Kirill A. Shutemov
Date: Wed Dec 27 2017 - 05:17:31 EST


On Tue, Dec 26, 2017 at 07:43:40PM -0800, Matthew Wilcox wrote:
> On Tue, Dec 26, 2017 at 07:54:40PM +0300, Kirill A. Shutemov wrote:
> > On Fri, Dec 15, 2017 at 02:03:35PM -0800, Matthew Wilcox wrote:
> > > From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>
> > >
> > > This results in no change in structure size on 64-bit x86 as it fits in
> > > the padding between the gfp_t and the void *.
> >
> > The patch does more than described in the subject and commit message. At first
> > I was confused why do you need to touch idr here. It took few minutes to figure
> > it out.
> >
> > Could you please add more into commit message about lockname and xa_ locking
> > interface since you introduce it here?
>
> Sure! How's this?
>
> xarray: Add the xa_lock to the radix_tree_root
>
> This results in no change in structure size on 64-bit x86 as it fits in
> the padding between the gfp_t and the void *.
>
> Initialising the spinlock requires a name for the benefit of lockdep,
> so RADIX_TREE_INIT() now needs to know the name of the radix tree it's
> initialising, and so do IDR_INIT() and IDA_INIT().
>
> Also add the xa_lock() and xa_unlock() family of wrappers to make it
> easier to use the lock. If we could rely on -fplan9-extensions in
> the compiler, we could avoid all of this syntactic sugar, but that
> wasn't added until gcc 4.6.
>

Looks great, thanks.

--
Kirill A. Shutemov