On 9/26/24 18:40, Uladzislau Rezki wrote: > On Thu, Sep 26, 2024 at 06:35:27PM +0200, Vlastimil Babka wrote: >> On 9/18/24 16:40, Uladzislau Rezki wrote: >> >> >> > Thank you for valuable feedback! Indeed it is hard to follow, even >> > though it works correctly. >> > I will add the comment and also break the loop on first queuing as you >> > suggested! >> > >> > It does not make sense to loop further because following iterations >> > are never successful >> > thus never overwrite "queued" variable(it never reaches the >> > queue_rcu_work() call). >> > >> > <snip> >> > bool queued = false; >> > ... >> > for (i = 0; i < KFREE_N_BATCHES; i++) { >> > if (need_offload_krc(krcp)) { >> > queued = queue_rcu_work(system_wq, &krwp->rcu_work); >> > ... >> > return queued; >> > <snip> >> > >> > if we queued, "if(need_offload_krc())" condition is never true anymore. >> > >> > Below refactoring makes it clear. I will send the patch to address it. >> >> Looks good, AFAICT. Can you send the full patch then? Thanks. >> > I will do so. We can send it from RCU-side for rcX, this merge window or > you can do it. > > What is the best for you? Guess I could do via slab tree since the original commit went there too. Thanks > -- > Uladzislau Rezki