[ovs-dev] OvS-DPDK as secondary process

Ravi Kerur rkerur at gmail.com
Fri Mar 12 00:20:34 UTC 2021

On Thu, Mar 11, 2021 at 12:56 PM Ilya Maximets <i.maximets at ovn.org> wrote:

> On 3/11/21 8:46 PM, Ravi Kerur wrote:
> > On Thu, Mar 11, 2021 at 10:00 AM Ben Pfaff <blp at ovn.org> wrote:
> >
> >> On Thu, Mar 11, 2021 at 03:06:28AM -0800, Ravi Kerur wrote:
> >>> I am looking into running OvS-DPDK as a secondary DPDK process instead
> of
> >>> primary. We have a  custom built binary running as a primary DPDK
> process
> >>> and would like to augment it with OvS-DPDK running as secondary. DPDK
> >>> has '--proc-type=secondary' parameter which could be used to run as
> >>> secondary, however, I don't see it as a supported option while
> >> configuring
> >>> OvS-DPDK. Any config in OvS available for this?
> >>
> >> You can set additional DPDK configuration options for OVS with
> >> ovs-vsctl set Open_vSwitch . other-config:dpdk-extra="..."
> >> I don't know whether this particular option works.
> >>
> > Thank you, it worked.
> Yes, it might work.  However, OVS uses non-EAL threads to poll
> DPDK ports and not all DPDK mempool implementations are safe
> while using non-EAL threads.  For example, bucket mempool is
> not safe and attempt to use it will crash OVS.  While using
> multi-process mode you also must ensure that both applications
> are running on a different set of cores and that is not easy
> taking into account that non-pmd threads in OVS are not pinned.
> There are likely other places in DPDK that are not safe.
> For these reasons we deprecated and removed support of pdump
> and dpdk ring ports:
>   4ae8c4617fd3 ("dpdk: Deprecate pdump support.")
>   b4c5f00c339b ("netdev-dpdk: Deprecate ring ports.")
> Disabling of a multi-process support also required in order
> to use new lcore management API which is needed to support
> running on arbitrary CPU cores.
> In general, OVS doesn't support multi-process mode and we're
> going to completely disable it and, likely, use '--in-memory'
> by default to avoid littering of a filesystem with hugepage
> files and other stuff.

Thanks Ilya for the insight. When I replied "it works", basically I was
able to get past the blocked state. I have used OvS as primary and another
application as a secondary to some extent. I was looking into managing a
pair of packet processing engines as primary/secondary with this effort.
Thanks again for your inputs.

> Best regards, Ilya Maximets.

More information about the dev mailing list