[dpdk-dev] [dpdk-stable] [PATCH v2] eal: fix ctrl thread affinity with --lcores

Thomas Monjalon thomas at monjalon.net
Tue Jul 30 23:12:34 CEST 2019


30/07/2019 17:05, David Marchand:
> The ctrl thread cpu affinity setting has been broken when using --lcores.
> 
> Using -l/-c options makes each lcore associated to a physical cpu in a 1:1
> fashion.
> On the contrary, when using --lcores, each lcore cpu affinity can be set
> to a list of any online cpu on the system.
> 
> To handle both cases, each lcore cpu affinity is considered and removed
> from the process startup cpu affinity.
> 
> Introduced macros to manipulate dpdk cpu sets in both Linux and FreeBSD.
> 
> Examples on a 8 cores Linux system:
> 
> $ cd /sys/fs/cgroup/cpuset/
> $ mkdir dpdk
> $ cd dpdk
> $ echo 4-7 > cpuset.cpus
> $ echo 0 > cpuset.mems
> $ echo $$ > tasks
> 
> Before the fix:
> $ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
>  --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
> 
> 8427	cpu_list=4-5,7	testpmd
> 8428	cpu_list=4-6	eal-intr-thread
> 8429	cpu_list=4-6	rte_mp_handle
> 8430	cpu_list=4-5,7	lcore-slave-7
> 
> $ taskset -c 7 \
>  ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
>  --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
> 
> EAL: Detected 8 lcore(s)
> EAL: Detected 1 NUMA nodes
> EAL: Failed to create thread for interrupt handling
> EAL: FATAL: Cannot init interrupt-handling thread
> EAL: Cannot init interrupt-handling thread
> PANIC in main():
> Cannot init EAL
> 
> After the fix:
> $ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
>  --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
> 
> 15214	cpu_list=4-5,7	testpmd
> 15215	cpu_list=6	eal-intr-thread
> 15216	cpu_list=6	rte_mp_handle
> 15217	cpu_list=4-5,7	lcore-slave-7
> 
> $ taskset -c 7 \
>  ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \
>  --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048
> 
> 15297	cpu_list=4-5,7	testpmd
> 15298	cpu_list=4-5,7	eal-intr-thread
> 15299	cpu_list=4-5,7	rte_mp_handle
> 15300	cpu_list=4-5,7	lcore-slave-7
> 
> Bugzilla ID: 322
> Fixes: c3568ea37670 ("eal: restrict control threads to startup CPU affinity")
> Cc: stable at dpdk.org
> 
> Reported-by: Johan Källström <johan.kallstrom at ericsson.com>
> Signed-off-by: David Marchand <david.marchand at redhat.com>

Applied, thanks





More information about the dev mailing list