[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>
This commit is contained in:
committed by
Linus Torvalds
parent
4b6c2cca6e
commit
20e9751bd9
@ -1357,10 +1357,6 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
rcu.qlowmark= [KNL,BOOT] Set threshold of queued
|
||||
RCU callbacks below which batch limiting is re-enabled.
|
||||
|
||||
rcu.rsinterval= [KNL,BOOT,SMP] Set the number of additional
|
||||
RCU callbacks to queued before forcing reschedule
|
||||
on all cpus.
|
||||
|
||||
rdinit= [KNL]
|
||||
Format: <full_path>
|
||||
Run specified binary instead of /init from the ramdisk,
|
||||
|
Reference in New Issue
Block a user