Jakub Kicinski <kuba@xxxxxxxxxx> writes: > On Thu, 18 May 2023 14:17:45 -0700 Stefan Roesch wrote: >> - napi = napi_by_id(napi_id); >> - if (!napi) >> + ctx.napi = napi_by_id(napi_id); >> + if (!ctx.napi) >> goto out; >> >> preempt_disable(); > > This will conflict with: > > https://git.kernel.org/netdev/net-next/c/c857946a4e26 > > :( Not sure what to do about it.. > > Maybe we can merge a simpler version to unblock io-uring (just add > need_resched() to your loop_end callback and you'll get the same > behavior). Refactor in net-next in parallel. Then once trees converge > do simple a cleanup and call the _rcu version? Jakub, I can certainly call need_resched() in the loop_end callback, but isn't there a potential race? need_resched() in the loop_end callback might not return true, but the need_resched() call in napi_busy_poll does?