doc: Clarify use of slab constructors and SLAB_TYPESAFE_BY_RCU
authorPaul E. McKenney <paulmck@kernel.org>
Mon, 11 Dec 2023 19:55:17 +0000 (11:55 -0800)
committerBoqun Feng <boqun.feng@gmail.com>
Wed, 14 Feb 2024 15:53:50 +0000 (07:53 -0800)
This commit explicitly states that you should initialize any locks to
be used by readers in your SLAB_TYPESAFE_BY_RCU constructor.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Documentation/RCU/whatisRCU.rst

index 246ce0d..872ac66 100644 (file)
@@ -963,8 +963,8 @@ unfortunately any spinlock in a ``SLAB_TYPESAFE_BY_RCU`` object must be
 initialized after each and every call to kmem_cache_alloc(), which renders
 reference-free spinlock acquisition completely unsafe.  Therefore, when
 using ``SLAB_TYPESAFE_BY_RCU``, make proper use of a reference counter.
-(Those willing to use a kmem_cache constructor may also use locking,
-including cache-friendly sequence locking.)
+(Those willing to initialize their locks in a kmem_cache constructor
+may also use locking, including cache-friendly sequence locking.)
 
 With traditional reference counting -- such as that implemented by the
 kref library in Linux -- there is typically code that runs when the last