On Tue, Apr 10, 2018 at 12:45:56PM -0500, Christopher Lameter wrote:
On Tue, 10 Apr 2018, Matthew Wilcox wrote:
How do you envision dealing with the SLAB_TYPESAFE_BY_RCU slab caches? Those must have a defined state of the objects at all times and a constructor is required for that. And their use of RCU is required for numerous lockless lookup algorithms in the kernhel.
Not at all times. Only once they've been used. Re-constructing them once they've been used might break the rcu typesafety, I suppose ... would need to examine the callers.
Objects can be freed and reused and still be accessed from code that thinks the object is the old and not the new object....
Yes, I know, that's the point of RCU typesafety. My point is that an object *which has never been used* can't be accessed. So you don't *need* a constructor.