[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <qvqwleh41f8x.fsf@devbig1114.prn1.facebook.com>
Date: Wed, 31 May 2023 12:16:50 -0700
From: Stefan Roesch <shr@...kernel.io>
To: Jakub Kicinski <kuba@...nel.org>
Cc: io-uring@...r.kernel.org, kernel-team@...com, axboe@...nel.dk,
ammarfaizi2@...weeb.org, netdev@...r.kernel.org, olivier@...llion01.com
Subject: Re: [PATCH v13 1/7] net: split off __napi_busy_poll from
napi_busy_poll
Jakub Kicinski <kuba@...nel.org> 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?
Powered by blists - more mailing lists