On 12/21/2017 05:39 PM, Paul E. McKenney wrote: >> I left it out on purpose because the call in tiny is a little different >> >> rcutiny.h: >> >> static inline void kfree_call_rcu(struct rcu_head *head, >> A A A A A A A A A A A A A void (*func)(struct rcu_head *rcu)) >> { >> A A A call_rcu(head, func); >> } >> >> tree.c: >> >> void kfree_call_rcu(struct rcu_head *head, >> A A A A A A A A A void (*func)(struct rcu_head *rcu)) >> { >> A A A __call_rcu(head, func, rcu_state_p, -1, 1); >> } >> EXPORT_SYMBOL_GPL(kfree_call_rcu); >> >> If we want the code to be exactly same I can create a lazy version >> for tiny as well. However,A I don not know where to move >> kfree_call_rcu() from it's current home in rcutiny.h though. Any >> thoughts ? > I might be missing something subtle here, but in case I am not, my > suggestion is to simply rename rcutiny.h's kfree_call_rcu() and otherwise > leave it as is. If you want to update the type of the second argument, > which got missed back in the day, there is always this: > > static inline void call_rcu_lazy(struct rcu_head *head, rcu_callback_t func) > { > call_rcu(head, func); > } > > The reason that Tiny RCU doesn't handle laziness specially is because > Tree RCU's handling of laziness is a big no-op on the single CPU systems > on which Tiny RCU runs. So Tiny RCU need do nothing special to support > laziness. > > Thanx, Paul > Hi Paul, I can not just change the name as __kfree_call_rcu macro calls kfree_call_rcu(). I have made tiny version of kfree_call_rcu() call rcu_call_lazy() which calls call_rcu(). As far as the type is concerned, my bad, I cut and posted from an older release. Latest code is already using the typedef. Shoaib