Re: [PATCH 0/4] kvfree_rcu() and _LOCK_NESTING/_PREEMPT_RT
From: Paul E. McKenney
Date: Fri Sep 18 2020 - 18:15:32 EST
On Fri, Sep 18, 2020 at 09:48:13PM +0200, Uladzislau Rezki (Sony) wrote:
> Hello, folk!
> This is another iteration of fixing kvfree_rcu() issues related
> to CONFIG_PROVE_RAW_LOCK_NESTING and CONFIG_PREEMPT_RT configs.
> The first discussion is here https://lkml.org/lkml/2020/8/9/195.
> - As an outcome of it, there was a proposal from Peter, instead of
> using a speciall "lock-less" flag it is better to move lock-less
> access to the pcplist to the separate function.
> - To add a special worker thread that does prefetching of pages
> if a per-cpu page cache is depleted(what is absolutely normal).
> As usual, thank you for paying attention to it and your help!
> Uladzislau Rezki (Sony) (4):
> rcu/tree: Add a work to allocate pages from regular context
> mm: Add __rcu_alloc_page_lockless() func.
> rcu/tree: use __rcu_alloc_page_lockless() func.
> rcu/tree: Use schedule_delayed_work() instead of WQ_HIGHPRI queue
Thank you, Uladzislau!
I have pulled this into -rcu for review and testing. I have not yet
assigned it to an intended release.
> include/linux/gfp.h | 1 +
> kernel/rcu/tree.c | 90 ++++++++++++++++++++++++---------------------
> mm/page_alloc.c | 82 +++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 132 insertions(+), 41 deletions(-)