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

David Marchand david.marchand at redhat.com
Wed Mar 17 13:38:07 UTC 2021

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.

David Marchand

More information about the dev mailing list