[PATCH 0/4] kvfree_rcu() and _LOCK_NESTING/_PREEMPT_RT

From: Uladzislau Rezki (Sony)
Date: Fri Sep 18 2020 - 15:48:54 EST


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

include/linux/gfp.h | 1 +
kernel/rcu/tree.c | 90 ++++++++++++++++++++++++---------------------
mm/page_alloc.c | 82 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 132 insertions(+), 41 deletions(-)

--
2.20.1