[dpdk-dev] [PATCH 0/3] eal affinitize low priority threads to lcore 0

Richardson, Bruce bruce.richardson at intel.com
Fri Sep 12 10:07:12 CEST 2014


> -----Original Message-----
> From: Hiroshi Shimamoto [mailto:h-shimamoto at ct.jp.nec.com]
> Sent: Friday, September 12, 2014 12:48 AM
> To: Richardson, Bruce; dev at dpdk.org
> Subject: RE: [dpdk-dev] [PATCH 0/3] eal affinitize low priority threads to lcore 0
> 
> Hi Bruce,
> 
> > Subject: [dpdk-dev] [PATCH 0/3] eal affinitize low priority threads to lcore 0
> >
> > This patchset sets things up so that we can affinitize the interrupt,
> > vfio management, and hpet timer management threads to lcore 0, so that
> > they never interfere with data plane threads.
> 
> I don't think it works well always.
> The management threads can be floating all cpus on demand, because those
> threads are created before the master thread affinity is set. The kernel
> scheduler will take care of it. And we should isolate cpus which data plane
> threads are pinned to, so the management threads cannot run on those isolated
> cpus data plane thread run.

Yes, this was my understanding as well of how things would work - we just had a report back of where the management threads were using the same core as the data-plane despite the core being isolated. I'll double-check to see if this really is happening and resubmit a new patch with a configurable core assignment if it is definitely needed.

/Bruce

> In some cases, the user may run data plane thread on lcore 0, but with
> this patchset the data plane pinned to lcore 0 always run with the
> management threads. That doesn't seem good.
> 
> I think this functionality should be conditional.
> How about to add a parameter to specify the mask for the management threads
> instead of statically assignment to lcore 0?
> 
> thanks,
> Hiroshi
> 
> >
> > Bruce Richardson (3):
> >   eal: add core id param to  eal_thread_set_affinity
> >   eal: increase scope of eal_thread_set_affinity
> >   eal: affinitize low-priority threads to lcore 0
> >
> >  lib/librte_eal/bsdapp/eal/eal_thread.c             | 12 ++++++------
> >  lib/librte_eal/common/include/eal_private.h        | 10 ++++++++++
> >  lib/librte_eal/linuxapp/eal/eal_interrupts.c       |  5 +++++
> >  lib/librte_eal/linuxapp/eal/eal_pci_vfio_mp_sync.c |  6 ++++++
> >  lib/librte_eal/linuxapp/eal/eal_thread.c           | 12 ++++++------
> >  lib/librte_eal/linuxapp/eal/eal_timer.c            |  5 +++++
> >  6 files changed, 38 insertions(+), 12 deletions(-)
> >
> > --
> > 1.9.3



More information about the dev mailing list