• P
    rcu: Prohibit starting new grace periods while forcing quiescent states · 07079d53
    Paul E. McKenney 提交于
    Reduce the number and variety of race conditions by prohibiting
    the start of a new grace period while force_quiescent_state() is
    active. A new fqs_active flag in the rcu_state structure is used
    to trace whether or not force_quiescent_state() is active, and
    this new flag is tested by rcu_start_gp().  If the CPU that
    closed out the last grace period needs another grace period,
    this new grace period may be delayed up to one scheduling-clock
    tick, but it will eventually get started.
    Signed-off-by: NPaul 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
    LKML-Reference: <126264655052-git-send-email->
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    07079d53
rcutree.c 55.3 KB