On Fri, 16 Jun 2023 at 09:34, Paul E. McKenney <paulmck@xxxxxxxxxx> wrote: > > Yes, it would be nice to abstract this somehow in order to hide it in > SRCU, but I still don't see a good way of doing this. Ehh - like we actually do spinlocks in general, perhaps? Spinlocks always exist. On UP - with no spinlock debugging - it turns into a zero-sized data structure, and the spin lock/unlock operations are no-ops. Why don't you just do the exact same thing with the "struct srcu_usage". For Tiny SRCU, just make it an empty struct, with an empty initializer. IOW, don't "abstract it out". Abstract it IN. Make tiny-rcu still have it, just as a no-op. Anyway, I've pulled your fix, but maybe the above would have been the cleaner solution? Linus