summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.ibm.com>2019-01-10 18:30:15 -0500
committerPaul E. McKenney <paulmck@linux.ibm.com>2019-03-26 17:37:49 -0400
commite85e6a21b2b5f31148cc3f2e785262b37c3e1ec7 (patch)
tree4d7121edf1592ee510ffcaff3914ebb731f593e6 /kernel/rcu
parent9e98c678c2d6ae3a17cb2de55d17f69dddaa231b (diff)
rcu: Unconditionally expedite during suspend/hibernate
The rcu_pm_notify() function refuses to switch to/from expedited grace periods on systems with more than 256 CPUs due to the serialized initialization of expedited grace periods. However, expedited grace periods are now initialized in parallel, removing this concern. This commit therefore removes the checks from rcu_pm_notify(), so that expedited grace periods are used unconditionally during suspend/resume and hibernate/wake operations. As always, real-time workloads wishing to completely avoid expedited grace periods can use the rcupdate.rcu_normal= kernel parameter. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/tree.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index acd6ccf56faf..95e3250b7b6e 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3559,13 +3559,11 @@ static int rcu_pm_notify(struct notifier_block *self,
3559 switch (action) { 3559 switch (action) {
3560 case PM_HIBERNATION_PREPARE: 3560 case PM_HIBERNATION_PREPARE:
3561 case PM_SUSPEND_PREPARE: 3561 case PM_SUSPEND_PREPARE:
3562 if (nr_cpu_ids <= 256) /* Expediting bad for large systems. */ 3562 rcu_expedite_gp();
3563 rcu_expedite_gp();
3564 break; 3563 break;
3565 case PM_POST_HIBERNATION: 3564 case PM_POST_HIBERNATION:
3566 case PM_POST_SUSPEND: 3565 case PM_POST_SUSPEND:
3567 if (nr_cpu_ids <= 256) /* Expediting bad for large systems. */ 3566 rcu_unexpedite_gp();
3568 rcu_unexpedite_gp();
3569 break; 3567 break;
3570 default: 3568 default:
3571 break; 3569 break;