Re: [PATCH 0/3] eal affinitize low priority threads to lcore 0
From: Richardson, Bruce <hidden>
Date: 2014-09-12 08:07:12
-----Original Message----- From: Hiroshi Shimamoto [mailto:h-shimamoto-ehU+Cx/zZe18UrSeD/g0lQ@public.gmane.org] Sent: Friday, September 12, 2014 12:48 AM To: Richardson, Bruce; dev-VfR2kkLFssw@public.gmane.org Subject: RE: [dpdk-dev] [PATCH 0/3] eal affinitize low priority threads to lcore 0 Hi Bruce,quoted
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, Hiroshiquoted
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