]> git.baikalelectronics.ru Git - kernel.git/commit
srcu: Add cleanup_srcu_struct_quiesced()
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 6 Apr 2018 00:19:17 +0000 (17:19 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 15 May 2018 17:27:56 +0000 (10:27 -0700)
commitcf9042fdc2b8989e9b8c6db8ad06a907d10f1df5
tree788cdde1d2f7abe01e14b37004e89734cc642835
parent86e207bceb7b3f18f6d503904f9aaf295694ee6b
srcu: Add cleanup_srcu_struct_quiesced()

The current cleanup_srcu_struct() flushes work, which prevents it
from being invoked from some workqueue contexts, as well as from
atomic (non-blocking) contexts.  This patch therefore introduced a
cleanup_srcu_struct_quiesced(), which can be invoked only after all
activity on the specified srcu_struct has completed.  This restriction
allows cleanup_srcu_struct_quiesced() to be invoked from workqueue
contexts as well as from atomic contexts.

Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Nitzan Carmi <nitzanc@mellanox.com>
Tested-by: Nicholas Piggin <npiggin@gmail.com>
include/linux/srcu.h
kernel/rcu/rcutorture.c
kernel/rcu/srcutiny.c
kernel/rcu/srcutree.c