All non-dpdk application threads assigned to the same core after calling rte_eal_init()

Daniel May danielmay83 at gmail.com
Mon Jul 28 16:57:28 CEST 2025


Hello,

I have a C++ application which uses DPDK to receive packets over two 100
Gbps interfaces from an FPGA device.

I've isolated cores 0-2. DPDK is using cores 0-2, main lcore on 0, and two
receive threads on cores 1 and 2.  The receive threads read packets from
mbufs and move the packets to a couple of circular buffers.  This works as
expected.

The application starts another set of threads (worker threads) to read from
the circular buffers and handle the data. However, these threads are all
being assigned to core 0, instead of cores 3-n.

If I start the worker threads first, before calling rte_eal_init(), they
get assigned to non isolated cores as expected.  However, any thread I
start from the main thread after calling rte_eal_init() gets assigned to
the main lcore core (0).  I can set affinity manually, but I'd rather the
kernel scheduler do its thing.

Is there something I need to do to hand control back to the kernel
scheduler for assigning threads to cores after initializing DPDK?

Thanks,
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/users/attachments/20250728/a8cd8afc/attachment.htm>


More information about the users mailing list