[ovs-dev] [PATCH dpdk-latest v4] dpdk: Support running PMD threads on any core.

David Marchand david.marchand at redhat.com
Mon Dec 28 14:47:46 UTC 2020


On Fri, Nov 20, 2020 at 7:01 PM Kevin Traynor <ktraynor at redhat.com> wrote:
>
> On 02/11/2020 13:10, David Marchand wrote:
> > DPDK 20.08 introduced a new API that associates a non-EAL thread to a free
> > lcore. This new API does not change the thread characteristics (like CPU
> > affinity).
> > Using this new API, there is no assumption on lcore X running on cpu X
> > anymore which leaves OVS free from running its PMD thread on any cpu.
> >
> > DPDK still limits the number of lcores to RTE_MAX_LCORE (128 on x86_64)
> > which should be enough for OVS pmd threads (hopefully).
> >
>
> This feature won't work with multi-process and will disable it, which is
> probably fine - just need to be sure that others are ok with that.
>
> It would be a lot cleaner to use this if mp is not allowed. If people
> think mp is needed, then a mp user option (default disable) could be
> added to enable it before the PMD threads start. In that case, this
> lcore feature won't work, but it could fall back to previous model.
>
> If mp is explicitly not allowed now, it would need a doc update.

I saw no opinion for keeping mp and mp was already hard to use with OVS.
I'd rather keep the code simple for now, and explicitly disable this
feature at init time.
I can revisit this in the future if someone really cares about mp.

>
> > DPDK lcore/OVS pmd threads mapping are logged at threads creation and
> > destruction.
> > A new command is added to help get DPDK point of view of the DPDK lcores:
> >
> > $ ovs-appctl dpdk/lcores-list
> > lcore 0, socket 0, role RTE, cpuset 0
> > lcore 1, socket 0, role NON_EAL, cpuset 1
> > lcore 2, socket 0, role NON_EAL, cpuset 15
> >
>
> Could probably add this in the docs too, not sure the current thinking
> about documenting these appctl commands.

I will update the man.


-- 
David Marchand



More information about the dev mailing list