Skip to content
Commit d143b3d1 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcu: Simplify rcu_read_unlock_special() deferred wakeups



In !use_softirq runs, we clearly cannot rely on raise_softirq() and
its lightweight bit setting, so we must instead do some form of wakeup.
In the absence of a self-IPI when interrupts are disabled, these wakeups
can be delayed until the next interrupt occurs.  This means that calling
invoke_rcu_core() doesn't actually do any expediting.

In this case, it is better to take the "else" clause, which sets the
current CPU's resched bits and, if there is an expedited grace period
in flight, uses IRQ-work to force the needed self-IPI.  This commit
therefore removes the "else if" clause that calls invoke_rcu_core().

Reported-by: default avatarScott Wood <swood@redhat.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
parent 609488bc
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment