Hi,
System information:
- 7.0.7
- Ubuntu: 22.04
- Built from source with DPDK
I have been wanting to configure DPDK with 2 NUMA nodes and 1 NIC on each NUMA node. However each and every time we configure DPDK, it ends up putting half the threads on the wrong NUMA node. This is probably due to DPDK assigning threads sequentially from 0-56.
Example setup:
Numa0: 0-13,27-41
Numa1: 14-26,42-55
CPU affinity setup:
threading:
set-cpu-affinity: yes
cpu-affinity:
- management-cpu-set:
cpu: [ 0 ]
- receive-cpu-set:
cpu: [ 0 ]
- worker-cpu-set:
cpu: [ "0-13", "27-41", "14-26", "42-55" ]
mode: "exclusive"
prio:
low: [ 0 ]
medium: [ "1-2" ]
high: [ "0-13", "27-41", "14-26", "42-55" ]
default: "high"
DPDK configuration:
dpdk:
eal-params:
proc-type: primary
- interface: 0000:3b:00.0 # PCIe address of the NIC port
threads: 28
....
- interface: 0000:80:00.0 # PCIe address of the NIC port
threads: 28
I would expect the configuration to work like this:
0000:3b:00.0: “0-13”, “27-41”
0000:80:00.0: “14-26”, “42-55”
However it seems like DPDK binds the first 28 threads (“0-13”, “14-26”) to 0000:3b:00.0. This causes 14 of the threads to be on the wrong NUMA node.
Is there any way to work around this with DPDK eal params?
I would prefer not running two different suricata processes if possible.
Thanks in advance
EDIT: forgot to remove some comments and the fact that cpu-affinity is set to true