Re: [PATCH v2 2/7] radix-tree: Use local_lock for protection

From: Ingo Molnar
Date: Mon May 25 2020 - 09:26:13 EST



* Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:

> On Mon, May 25, 2020 at 08:29:54AM +0200, Ingo Molnar wrote:
> > > +void radix_tree_preload_end(void)
> > > +{
> > > + local_unlock(&radix_tree_preloads.lock);
> > > +}
> > > +EXPORT_SYMBOL(radix_tree_preload_end);
> >
> > Since upstream we are still mapping the local_lock primitives to
> > preempt_disable()/preempt_enable(), I believe these uninlining changes should not be done
> > in this patch, i.e. idr_preload_end() and radix_tree_preload_end() should stay inline.
>
> But radix_tree_preloads is static, and I wouldn't be terribly happy to
> see that exported to modules.

Well, it seems a bit silly to make radix_tree_preload_end() a
standalone function, on most distro kernels that don't have
CONFIG_PREEMPT=y, preempt_enable() is a NOP:

0000000000002bf0 <radix_tree_preload_end>:
2bf0: c3 retq

I.e. we'd be introducing a separate function call for no good reason.

Thanks,

Ingo