rcu: Prevent RCU IPI storms in presence of high call_rcu() load
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 14 Oct 2009 17:15:55 +0000 (10:15 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 15 Oct 2009 09:17:16 +0000 (11:17 +0200)
commit37c72e56f6b234ea7387ba530434a80abf2658d8
tree1c589c3ecdebbe19488359795cde4c55726a63aa
parent2bc872036e1c5948b5b02942810bbdd8dbdb9812
rcu: Prevent RCU IPI storms in presence of high call_rcu() load

As the number of callbacks on a given CPU rises, invoke
force_quiescent_state() only every blimit number of callbacks
(defaults to 10,000), and even then only if no other CPU has
invoked force_quiescent_state() in the meantime.

This should fix the performance regression reported by Nick.

Reported-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: mathieu.desnoyers@polymtl.ca
Cc: josh@joshtriplett.org
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
Cc: Valdis.Kletnieks@vt.edu
Cc: dhowells@redhat.com
Cc: jens.axboe@oracle.com
LKML-Reference: <12555405592133-git-send-email->
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/rcutree.c
kernel/rcutree.h