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 <Rashi.Agarwal@mobileum.com> 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.