]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
ksoftirqd: Use new cond_resched_rcu_qs() function
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 14 Jan 2015 21:20:26 +0000 (13:20 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 14 Jan 2015 21:20:26 +0000 (13:20 -0800)
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>
kernel/softirq.c

index c497fcdf0d1e672230a7bd941a4b6de9c22b6204..8cdb98847c7b277155702a95a6ace591642d2e7a 100644 (file)
@@ -657,12 +657,7 @@ static void run_ksoftirqd(unsigned int cpu)
                 */
                __do_softirq();
                local_irq_enable();
-               cond_resched();
-
-               preempt_disable();
-               rcu_note_context_switch();
-               preempt_enable();
-
+               cond_resched_rcu_qs();
                return;
        }
        local_irq_enable();