OSDN Git Service

rcu: Make large and small sysidle systems use same state machine
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 7 Apr 2014 20:34:07 +0000 (13:34 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 29 Apr 2014 15:45:24 +0000 (08:45 -0700)
commitbecb41bfe0544f1f7f494f48d6f68cbdb2e1ed0e
treec71041b70966e689ccc7e667ce94e57f7469f047
parent5057f55e543b7859cfd26bc281291795eac93f8a
rcu: Make large and small sysidle systems use same state machine

Currently, small systems move back into RCU_SYSIDLE_NOT from
RCU_SYSIDLE_SHORT and large systems do not.  This works because moving
aggressively to RCU_SYSIDLE_NOT affects only performance, not correctness,
and on small systems, the performance impact should be negligible.  That
said, this difference does make RCU a bit more complex, and RCU does not
seem to be suffering from any lack of complexity.  This commit therefore
adjusts small-system operation to match that of large systems, so that
the state never moves back to RCU_SYSIDLE_NOT from RCU_SYSIDLE_SHORT.

Reported-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
kernel/rcu/tree_plugin.h