Some parts of dpdk use their own management threads. Most of the time, the affinity of the thread is not properly set: it should not be scheduled on the dataplane cores, because interrupting them can cause packet losses.
This patchset introduces a new wrapper for thread creation that does the job automatically, avoiding code duplication. v2: * set affinity to master core if no core is off, as suggested by Anatoly Olivier Matz (4): eal: use sizeof to avoid a double use of a define eal: new function to create control threads eal: set name when creating a control thread eal: set affinity for control threads drivers/net/kni/Makefile | 1 + drivers/net/kni/rte_eth_kni.c | 3 +- lib/librte_eal/bsdapp/eal/eal.c | 2 +- lib/librte_eal/bsdapp/eal/eal_thread.c | 2 +- lib/librte_eal/common/eal_common_thread.c | 72 ++++++++++++++++++++++++++ lib/librte_eal/common/include/rte_lcore.h | 26 ++++++++++ lib/librte_eal/linuxapp/eal/eal.c | 4 +- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 17 ++---- lib/librte_eal/linuxapp/eal/eal_thread.c | 2 +- lib/librte_eal/linuxapp/eal/eal_timer.c | 12 +---- lib/librte_eal/linuxapp/eal/eal_vfio_mp_sync.c | 10 +--- lib/librte_eal/rte_eal_version.map | 1 + lib/librte_pdump/Makefile | 1 + lib/librte_pdump/rte_pdump.c | 13 ++--- lib/librte_vhost/socket.c | 7 +-- 15 files changed, 125 insertions(+), 48 deletions(-) -- 2.11.0