[PATCH] rcu: simplify/improve batch tuning
authorOleg Nesterov <oleg@tv-sign.ru>
Wed, 4 Oct 2006 09:17:17 +0000 (02:17 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 4 Oct 2006 14:55:31 +0000 (07:55 -0700)
commit20e9751bd9dd6b832fd84ada27840360f7e877f1
treec598ff9cb9e540da7f8595f2c130f3674065e018
parent4b6c2cca6eef9cc4a15350bf1c61839e12e08b84
[PATCH] rcu: simplify/improve batch tuning

Kill a hard-to-calculate 'rsinterval' boot parameter and per-cpu
rcu_data.last_rs_qlen.  Instead, it adds adds a flag rcu_ctrlblk.signaled,
which records the fact that one of CPUs has sent a resched IPI since the
last rcu_start_batch().

Roughly speaking, we need two rcu_start_batch()s in order to move callbacks
from ->nxtlist to ->donelist.  This means that when ->qlen exceeds qhimark
and continues to grow, we should send a resched IPI, and then do it again
after we gone through a quiescent state.

On the other hand, if it was already sent, we don't need to do it again
when another CPU detects overflow of the queue.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Paul E. McKenney <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/kernel-parameters.txt
include/linux/rcupdate.h
kernel/rcupdate.c