Hi Rajesh,
Thanks for your response.
I appreciate the clarification regarding rte_eal_init() and core binding. I
have some follow-up questions regarding the behaviour difference between RHEL7
and RHEL8.
1. Why does the same rte_eal_init() configuration behave differently on
RHEL7 vs. RHEL8?
* In RHEL7, CPU binding works as expected, but in RHEL8, the application
always binds to core 1. What could be causing this difference?
2. Process vs. DPDK Core Assignment:
* My goal is to assign DPDK to run on core 1 while the rest of the
process threads are pinned using numactl.
* Does rte_eal_init() interfere with CPU affinity settings applied
through numactl?
3. Effect of Not Specifying a Core in rte_eal_init():
* What happens if we don’t specify a core mask (-c option) during
rte_eal_init()?
* Will DPDK inherit the core binding from numactl, or does it select
cores dynamically?
4. Does rte_eal_init() override numactl settings?
* If numactl is used to pin the application to specific cores, does
rte_eal_init() override that and reset core affinity?
Your insights on these questions would be very helpful. Thanks again for your
time and support!
Regards,
Rashi Agarwal.
From: Rajesh Kumar <[email protected]>
Sent: Wednesday, February 26, 2025 4:27 PM
To: Rashi Agarwal <[email protected]>
Cc: [email protected]
Subject: Re: CPU Affinity Not Working in RHEL8 with DPDK 20.05
Caution :External
Hi Rashi,
Please change the argument to rte_eal_init (), in your code, -c 0x2 will always
bind it to 1st core . Change it to "-c", "0x30" for pinning core 4 and 5.
int dpdk_argc = 8; char *dpdk_argv[] = { procName, "-c", "0x2", "--no-huge",
filePrefix ,"-m","64" , "--log-level=eal,8"};
Thanks,
-Rajesh
On Wed, Feb 26, 2025 at 10:25 AM Rashi Agarwal
<[email protected]<mailto:[email protected]>> wrote:
Hi DPDK Community,
I am facing an issue where CPU affinity is not working as expected in RHEL8
with DPDK 20.05, while it works fine in RHEL7.
Problem Statement:
• When running my program with numactl -C4,5 ./testRTE on RHEL7, the
worker threads correctly bind to the assigned cores.
• However, on RHEL8, the worker threads always bind to core 1, ignoring
the specified CPU set.
Environment Details:
* DPDK Version: 20.05.0
* OS: RHEL8 (Issue) | RHEL7 (Works Fine)
* CPU Affinity Tool: numactl -C
Sample Program: Attached
Observations:
* In RHEL7, worker threads correctly bind to cores specified using numactl
-C.
* In RHEL8, the threads always bind to core 1, ignoring the CPU set.
* Could DPDK be overriding the CPU affinity in RHEL8?
Questions:
1. Is there any known change in CPU affinity handling between RHEL7 and
RHEL8 affecting DPDK?
2. Does DPDK override thread affinity when rte_eal_init() is called?
3. Is there any workaround or EAL flag to ensure that CPU affinity is
respected?
Any insights or suggestions would be greatly appreciated.
Thanks,
Rashi Agarwal.