On Mon, Jan 29, 2024 at 05:23:01PM +0100, Uladzislau Rezki wrote: > On Fri, Jan 26, 2024 at 11:07:18PM -0800, Paul E. McKenney wrote: > > On Thu, Jan 04, 2024 at 05:25:06PM +0100, Uladzislau Rezki (Sony) wrote: > > > This is a v4 that tends to improve synchronize_rcu() call. To be more > > > specific it is about reducing a waiting time(especially worst cases) > > > of caller that blocks until a grace period is elapsed. > > > > > > In general, this series separates synchronize_rcu() callers from other > > > callbacks. We keep a dedicated an independent queue, thus the processing > > > of it starts as soon as grace period is over, so there is no need to wait > > > until other callbacks are processed one by one. Please note, a number of > > > callbacks can be 10K, 20K, 60K and so on. That is why this series maintain > > > a separate track for this call that blocks a context. > > > > And before I forget (again), a possible follow-on to this work is to > > reduce cond_synchronize_rcu() and cond_synchronize_rcu_full() latency. > > Right now, these wait for a full additional grace period (and maybe > > more) when the required grace period has not elapsed. In contrast, > > this work might enable waiting only for the needed portion of a grace > > period to elapse. > > > Thanks. I see it. Probably we also need to move "sync" related > functionality out of tree.c file to the sync.c or something similar > to that name. IMO. I would prioritize moving the kfree_rcu() code out of tree.c quite a ways over moving out the synchronous-wait code. ;-) Thanx, Paul