[ovs-dev] [PATCH v1 00/23] dpif-netdev: Parallel offload processing

Maxime Coquelin maxime.coquelin at redhat.com
Wed Mar 17 17:48:41 UTC 2021

On 3/17/21 2:38 PM, David Marchand wrote:
> On Tue, Mar 16, 2021 at 6:49 PM Gaëtan Rivet <grive at u256.net> wrote:
>> Hey, thanks for taking the time to give more info!
>> I'm in a pickle now though.
>> To rewind back a little: flush support was implemented after this series was written.
>> I added support for it as well, doing a proper parallel dispatch. It needs however some ugly sync between the thread doing the flush and offload threads. The ovs_barrier used for this has a UAF (which does not affect RCU or revalidators, only in very specific contexts such as this new one).
>> It was starting to become a series on its own, on top of an already large one, so I decided to keep it for later.
>> It seems I will need to do it in one fell swoop instead.
>> Sorry about this, I should have picked it up before. Well at least the crash is pretty obvious :) .
> Err, yes.
> Did you consider adding more unit tests?
> Not sure it could catch this situation though.
>> Thanks again though, I'll send a proper v2 ASAP, but it will require a few additional patches.
> I'll continue looking at the v1 anyway.
> One issue that I noticed.
> With traffic running non stop and restarting ovs, one way of my flows
> (pf -> vf rep) remains as partial offloads while the other way (vf rep
> -> pf) is fully offloaded.
> I can easily "fix" this by stopping traffic, letting flows expire and
> restarting traffic and then, all flows are fully offloaded afterwards.
> Flushing fdb also works.
> I did not see this before the series, but I need to double check.

FYI, on my testbed (CX-6 Dx), I can reproduce it without this series

More information about the dev mailing list