On Mon, Jun 22, 2020 at 12:53:29PM -0700, Paul E. McKenney wrote: > On Mon, Jun 22, 2020 at 09:04:06PM +0200, Uladzislau Rezki wrote: > > > > > > > > > > Very good. When does kfree_rcu() and friends move out of kernel/rcu? > > > > > > > > > Do you mean to move the whole logic of kfree_rcu() from top to down to mm/? > > > > > > I do mean exactly that. > > > > > > That was my goal some years back when Rao Shoaib was making the first > > > attempt along these lines, and it remains my goal. After all, if this > > > effort is at all successful, the coupling between kfree_rcu() with > > > slab/slob/slub will become much tighter than that between kfree_rcu() > > > and RCU. > > > > > > There will need to be some additional RCU APIs used by kfree_rcu(), > > > for example, something to tell RCU how many blocks are awaiting a > > > grace period. But these are narrow and easily defined APIs. > > > > > I also think that k[v]free_rcu() should reside somewhere under "mm/". > > Currently they are defined as macros under "linux/rcupdate.h". So i > > am not sure if definitions should stay there or moved also. > > I am not as worried about the high-level macros as I am about the code > that does the bulk of the work, but they should still move as well. > Otherwise, changes involving both the macros and the underlying > implementation are harder than needed. > > > Implementation of the k[v]free_rcu() is under rcu/tree.c and for tiny > > variant is under rcutiny.h. It can be moved to the mm/slab_common.c > > or independent files can be created. I think, mm people should consult > > what is the best way to go :) > > > > Any thoughts on it? > > I don't have any opinion on exactly where in mm the underlying > implementation code should go. You suggestion of mm/slab_common.c > seems fine to me. ;-) > OK :) Then i would like to hear an opinion from the "mm" people where kfree_rcu() and friends could potentially be moved. Matthew, Michal, Vlastimil could you please share your view? Thanks! -- Vlad Rezki