mirror of https://gitee.com/openkylin/linux.git
rcu: Advance callbacks after migration
When migrating callbacks from a newly offlined CPU, we are already holding the root rcu_node structure's lock, so it costs almost nothing to advance and accelerate the newly migrated callbacks. This patch therefore makes this advancing and acceleration happen. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
537b85c870
commit
21cc248384
|
@ -3935,6 +3935,7 @@ static void rcu_migrate_callbacks(int cpu, struct rcu_state *rsp)
|
||||||
rcu_advance_cbs(rsp, rnp_root, rdp); /* Leverage recent GPs. */
|
rcu_advance_cbs(rsp, rnp_root, rdp); /* Leverage recent GPs. */
|
||||||
rcu_send_cbs_to_orphanage(cpu, rsp, rnp, rdp);
|
rcu_send_cbs_to_orphanage(cpu, rsp, rnp, rdp);
|
||||||
rcu_adopt_orphan_cbs(rsp, flags);
|
rcu_adopt_orphan_cbs(rsp, flags);
|
||||||
|
rcu_advance_cbs(rsp, rnp_root, my_rdp); /* Assign GP to pending CBs. */
|
||||||
raw_spin_unlock_irqrestore_rcu_node(rnp_root, flags);
|
raw_spin_unlock_irqrestore_rcu_node(rnp_root, flags);
|
||||||
WARN_ONCE(rcu_segcblist_n_cbs(&rdp->cblist) != 0 ||
|
WARN_ONCE(rcu_segcblist_n_cbs(&rdp->cblist) != 0 ||
|
||||||
!rcu_segcblist_empty(&rdp->cblist),
|
!rcu_segcblist_empty(&rdp->cblist),
|
||||||
|
|
Loading…
Reference in New Issue