Commit-ID: 9d102c1b89a020067500486bd133b20813c21b3d Gitweb: http://git.kernel.org/tip/9d102c1b89a020067500486bd133b20813c21b3d Author: Eric Dumazet <dada1@xxxxxxxxxxxxx> AuthorDate: Fri, 27 Feb 2009 17:08:04 +0100 Commit: Ingo Molnar <mingo@xxxxxxx> CommitDate: Sat, 28 Feb 2009 10:46:27 +0100 rcu: increment quiescent state counter in ksoftirqd() Impact: reduce RCU grace period length during softirq overload If a machine is flooded by network frames, a cpu can loop 100% of its time inside ksoftirqd() without calling schedule(). This can delay RCU grace period to insane values. Adding rcu_qsctr_inc() call in ksoftirqd() solves this problem. Signed-off-by: Eric Dumazet <dada1@xxxxxxxxxxxxx> Cc: Stephen Hemminger <shemminger@xxxxxxxxxx> Cc: David Miller <davem@xxxxxxxxxxxxx> Cc: Patrick McHardy <kaber@xxxxxxxxx> Cc: Rick Jones <rick.jones2@xxxxxx> Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> Signed-off-by: Ingo Molnar <mingo@xxxxxxx> --- kernel/softirq.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c index bdbe9de..9041ea7 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -626,6 +626,7 @@ static int ksoftirqd(void * __bind_cpu) preempt_enable_no_resched(); cond_resched(); preempt_disable(); + rcu_qsctr_inc((long)__bind_cpu); } preempt_enable(); set_current_state(TASK_INTERRUPTIBLE); -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html