• P
    rcu: Add synchronize_sched_expedited() primitive · 03b042bf
    Paul E. McKenney 提交于
    This adds the synchronize_sched_expedited() primitive that
    implements the "big hammer" expedited RCU grace periods.
    
    This primitive is placed in kernel/sched.c rather than
    kernel/rcupdate.c due to its need to interact closely with the
    migration_thread() kthread.
    
    The idea is to wake up this kthread with req->task set to NULL,
    in response to which the kthread reports the quiescent state
    resulting from the kthread having been scheduled.
    
    Because this patch needs to fallback to the slow versions of
    the primitives in response to some races with CPU onlining and
    offlining, a new synchronize_rcu_bh() primitive is added as
    well.
    Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: akpm@linux-foundation.org
    Cc: torvalds@linux-foundation.org
    Cc: davem@davemloft.net
    Cc: dada1@cosmosbay.com
    Cc: zbr@ioremap.net
    Cc: jeff.chua.linux@gmail.com
    Cc: paulus@samba.org
    Cc: laijs@cn.fujitsu.com
    Cc: jengelh@medozas.de
    Cc: r000n@r000n.net
    Cc: benh@kernel.crashing.org
    Cc: mathieu.desnoyers@polymtl.ca
    LKML-Reference: <12459460982947-git-send-email->
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    03b042bf
rcupdate.h 9.9 KB