TREE04 can trigger a writer stall if run with memory pressure. This is due to a circular dependency between waiting for expedited grace period and polling on expedited grace period when workqueues go back to mayday serialization. Here is a proposal fix. Changes since v2 (no functional changes, just renames and reorganization): _ Move nocb cleanups to their own series _ Rename can_queue parameter to use_worker [2/7] _ Better explain the rename of the mutex [3/7] _ New commit with just code move to ease review [4/7] _ Comment declaration of the new rnp->exp_worker field [5/7] Thanks. Frederic Weisbecker (7): rcu/exp: Fix RCU expedited parallel grace period kworker allocation failure recovery rcu/exp: Handle RCU expedited grace period kworker allocation failure rcu: s/boost_kthread_mutex/kthread_mutex rcu/exp: Move expedited kthread worker creation functions above rcutree_prepare_cpu() rcu/exp: Make parallel exp gp kworker per rcu node rcu/exp: Handle parallel exp gp kworkers affinity rcu/exp: Remove rcu_par_gp_wq kernel/rcu/rcu.h | 5 -- kernel/rcu/tree.c | 175 +++++++++++++++++++++++++++------------ kernel/rcu/tree.h | 11 ++- kernel/rcu/tree_exp.h | 78 +++-------------- kernel/rcu/tree_plugin.h | 52 ++---------- 5 files changed, 142 insertions(+), 179 deletions(-) -- 2.34.1