Skip to content

Commit fd5ca26

Browse files
committed
Revert "rcu/nocb: Fix rcuog wake-up from offline softirq"
JIRA: https://issues.redhat.com/browse/RHEL-79879 commit b95d159 Author: Frederic Weisbecker <frederic@kernel.org> Date: Tue Dec 31 18:07:12 2024 +0100 This reverts commit f7345cc. swake_up_one_online() has been removed because hrtimers can now assign a proper online target to hrtimers queued from offline CPUs. Therefore remove the related hackery. Link: https://lore.kernel.org/all/20241231170712.149394-4-frederic@kernel.org/ Reviewed-by: Usama Arif <usamaarif642@gmail.com> Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com> Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
1 parent efb3cc2 commit fd5ca26

File tree

1 file changed

+1
-7
lines changed

1 file changed

+1
-7
lines changed

kernel/rcu/tree_nocb.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -554,19 +554,13 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp, bool was_alldone,
554554
rcu_nocb_unlock(rdp);
555555
wake_nocb_gp_defer(rdp, RCU_NOCB_WAKE_LAZY,
556556
TPS("WakeLazy"));
557-
} else if (!irqs_disabled_flags(flags) && cpu_online(rdp->cpu)) {
557+
} else if (!irqs_disabled_flags(flags)) {
558558
/* ... if queue was empty ... */
559559
rcu_nocb_unlock(rdp);
560560
wake_nocb_gp(rdp, false);
561561
trace_rcu_nocb_wake(rcu_state.name, rdp->cpu,
562562
TPS("WakeEmpty"));
563563
} else {
564-
/*
565-
* Don't do the wake-up upfront on fragile paths.
566-
* Also offline CPUs can't call swake_up_one_online() from
567-
* (soft-)IRQs. Rely on the final deferred wake-up from
568-
* rcutree_report_cpu_dead()
569-
*/
570564
rcu_nocb_unlock(rdp);
571565
wake_nocb_gp_defer(rdp, RCU_NOCB_WAKE,
572566
TPS("WakeEmptyIsDeferred"));

0 commit comments

Comments
 (0)