Re: [PATCH RFC] rcu/tree: Refactor object allocation and try harder for array allocation

From: Uladzislau Rezki
Date: Fri Apr 24 2020 - 08:28:58 EST


>
> I think Johannes said that waking up kswapd is Ok. OTOH, I did not see
> the drawback in waking up kswapd to do background reclaim since it
> does not happen synchronously right? I think Johannes said we can do
> better than just waking kswapd by also doing light direct reclaim
> using __GFP_NORETRY but let me know if I missed something.
>
Then i misunderstood that point. So, seems it is settled now. We just
use GFP_NOWAIT | __GFP_RECLAIM | __GFP_NORETRY | __GFP_NOWARN for headless
case, i.e. when we can sleep. It will do direct reclaim(slow path), but
light one because of __GFP_NORETRY.

Does it sound good?

> > For single argument we inline freeing into current context after
> > synchronize_rcu() because it follows might_sleep() annotation.
>
> Yes.
>
> Also, with the additional caching being planned, we could avoid the
> chances of hitting the synchronize_rcu inlining.
>
Or minimize it.

There is also one question i would like to clarify. That is dynamic head
attaching that requires small allocations. Do we drop it?

Thanks!

--
Vlad Rezki