aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-01-14 16:20:26 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-01-14 16:20:26 -0500
commit60479676eb6e9913176d93ebad194e3dc167bc63 (patch)
tree14f773bcb7af0375940e81735396afe82942c7ab
parent28423ad283d5348793b0c45cc9b1af058e776fd6 (diff)
ksoftirqd: Use new cond_resched_rcu_qs() function
Simplify run_ksoftirqd() by using the new cond_resched_rcu_qs() function that conditionally reschedules, but unconditionally supplies an RCU quiescent state. This commit is separate from the previous commit by Calvin Owens because Calvin's approach can be backported, while this commit cannot be. The reason that this commit cannot be backported is that cond_resched_rcu_qs() does not always provide the needed quiescent state in earlier kernels. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
-rw-r--r--kernel/softirq.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c
index c497fcdf0d1e..8cdb98847c7b 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -657,12 +657,7 @@ static void run_ksoftirqd(unsigned int cpu)
657 */ 657 */
658 __do_softirq(); 658 __do_softirq();
659 local_irq_enable(); 659 local_irq_enable();
660 cond_resched(); 660 cond_resched_rcu_qs();
661
662 preempt_disable();
663 rcu_note_context_switch();
664 preempt_enable();
665
666 return; 661 return;
667 } 662 }
668 local_irq_enable(); 663 local_irq_enable();