EXP rcu: Add polled expedited grace-period primitives
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 1 Feb 2022 00:55:52 +0000 (16:55 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 24 Feb 2022 17:56:44 +0000 (09:56 -0800)
commit6227afdc95e49b2fa28933026d681426393495da
treee7bb53a270272a2f09b5a4c67a75e0e16a765306
parent8eb954756a8d2c59a6e619eb18a4a51eed17a223
EXP rcu: Add polled expedited grace-period primitives

This is an experimental proof of concept of polled expedited grace-period
functions.  These functions are get_state_synchronize_rcu_expedited(),
start_poll_synchronize_rcu_expedited(), poll_state_synchronize_rcu_expedited(),
and cond_synchronize_rcu_expedited(), which are similar to
get_state_synchronize_rcu(), start_poll_synchronize_rcu(),
poll_state_synchronize_rcu(), and cond_synchronize_rcu(), respectively.

One limitation is that start_poll_synchronize_rcu_expedited() cannot
be invoked before workqueues are initialized.

[ paulmck: Apply feedback from Neeraj Upadhyay. ]

Link: https://lore.kernel.org/all/20220121142454.1994916-1-bfoster@redhat.com/
Link: https://docs.google.com/document/d/1RNKWW9jQyfjxw2E8dsXVTdvZYh0HnYeSHDKog9jhdN8/edit?usp=sharing
Cc: Brian Foster <bfoster@redhat.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Ian Kent <raven@themaw.net>
Tested-by: Oliver Sang <oliver.sang@intel.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/rcutiny.h
include/linux/rcutree.h
kernel/rcu/rcu.h
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_exp.h