When CONFIG_RCU_NOCB_CPU is enabled and 'rcu_nocbs' is set, the rcuop and rcuog kthreads is created. however the rcuop or rcuog kthreads creation may fail, if failed, deoffload the offloaded rdp. --- v1->v2: Invert the locking dependency order between rcu_state.barrier_mutex and hotplug lock. Holding nocb_gp_kthread_mutex, ensure that the nocb_gp_kthread exists. v2->v3: Adjust the position of the nocb_gp_kthread_mutex, in rdp_gp->nocb_gp_kthread check upper lock nocb_gp_kthread_mutex. Do the locking order change in a separate patch. Zqiang(2): rcu: Call rcu_nocb_rdp_deoffload() directly after rcuog/op kthreads spawn failed rcu: Invert the locking dependency order between rcu_state.barrier_mutex and hotplug lock kernel/rcu/tree_nocb.h | 83 ++++++++++++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 20 deletions(-) -- 2.25.1