rcu: Go dyntick-idle more quickly if CPU has serviced current grace period
authorPaul E. McKenney <paul.mckenney@linaro.org>
Wed, 23 Nov 2011 01:07:11 +0000 (17:07 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 11 Dec 2011 18:32:00 +0000 (10:32 -0800)
commit3084f2f80cc8a1fd66233722d88beac0fe85e26f
treebce77805235278599eda0572d5d36b11419681d7
parent433cdddcd9ac5558068edd7f8d4707a70f7710f5
rcu: Go dyntick-idle more quickly if CPU has serviced current grace period

The earlier version would attempt to push callbacks through five times
before going into dyntick-idle mode if callbacks remained, but the CPU
had done all that it needed to do for the current RCU grace periods.
This is wasteful:  In most cases, once the CPU has done all that it
needs to for the current RCU grace periods, it will make no further
progress on the callbacks no matter how many times it loops through
the RCU core processing and the idle-entry code.

This commit therefore goes to dyntick-idle mode whenever the current
CPU has done all it can for the current grace period.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree_plugin.h