Linus Torvalds writes: (Summary)
What it guarantees is that the slab isn't shared with any other kind
of object, _and_ that the underlying pages are free'd after an RCU
quiescent period (so the pages aren't shared with another kind of
object either during an RCU walk).
object either during an RCU walk).
And it doesn't necessarily have to have a constructor, because the thing that a RCU walk will care about is
thing that a RCU walk will care about is
(a) guaranteed to be an object that *has* been on some RCU list (so it's not a "new" object)
it's not a "new" object)
(b) the RCU walk needs to have logic to verify that it's still the *same* object and hasn't been re-used as something else.
object either during an RCU walk).
And it doesn't necessarily have to have a constructor, because the thing that a RCU walk will care about is
thing that a RCU walk will care about is
(a) guaranteed to be an object that *has* been on some RCU list (so it's not a "new" object)
it's not a "new" object)
(b) the RCU walk needs to have logic to verify that it's still the *same* object and hasn't been re-used as something else.