Re: [patch][rfc] radix-tree: be a nice citizen

Nick Piggin
2007-08-29T09:45:03Z

On Wed, Aug 29, 2007 at 02:20:44AM -0700, Andrew Morton wrote:
> On Wed, 29 Aug 2007 11:03:01 +0200 Nick Piggin <npiggin@suse.de> wrote:
>
> > On Wed, Aug 29, 2007 at 01:57:02AM -0700, Andrew Morton wrote:
> > > On Wed, 29 Aug 2007 10:50:39 +0200 Nick Piggin <npiggin@suse.de> wrote:
> > >
> > > > ISTR that last time I sent you a patch to do the same thing, you
> > > > had some objections. I can't remember what they were though, but
> > > > I guess you didn't end up merging it.
> > >
> > > So you can't remember what the problem was, and I have to work iyut
> > > out again. Is this efficient?
> >
> > No, but better than leaving it unfixed. It was years ago. I did try
> > to find it.
> >
>
> ho hum.
>
> >
> > > > I was reminded by the problem after seeing an atomic allocation
> > > > failure trace from pagecache radix tree inesrtion.
> > >
> > > wot? radix-tree node allocation for pagecache insertion doesn't fail.
> >
> > The atomic allocation that's part of node allocation can.
>
> radix-tree node allocations under add_to_page_cache() can't fail. Or if they
> can, there's some bug. IOW, I don't have a clue what you're trying to tell me.
>
> Can we start again?

Oh, OK. Yeah I'm sure the radix_tree_insert isn't failing, but the
first kmem_cache_alloc in radix_tree_node_alloc is failing (page
allocator is giving the backtrace). Because it is GFP_ATOMIC and
being done under the spinlock.