As discussed here, http://dpdk.org/dev/patchwork/patch/36579/, we will try best to avoid thread creation in the library. Now we have two threads for IPC, rte_mp_handle and rte_mp_handle_async. This patchset is to finish the job.
This patchset: - is rebased on commit 34345a9b69bb ("eventdev: fix build with icc"). - also needs http://dpdk.org/dev/patchwork/patch/37335/ Patch 1~2: code cleanup and bug fix. (Target for v18.05) Patch 3~4: Remove IPC async thread. (Target for v18.08) Patch 5~8: Remove IPC thread. (Target for v18.08) TODO: After this patch, IPC depends on interrupt handling thread and alarm. It's OK for Linux-specific subsystem/feature, like memory hotplug and vfio; while pdump and vdev auto discovery could be on FreeBSD. So it's like that we also need to implement interrupt handling thread and alarm for FreeBSD. Jianfeng Tan (8): ipc: clearn up code ipc: fix timeout not properly handled in async eal/linux: use glibc malloc in alarm ipc: remove IPC thread for async request eal/linux: use glibc malloc in interrupt handling eal: bring forward init of interrupt handling eal: add IPC type for interrupt thread ipc: remove IPC thread for message read lib/librte_eal/common/eal_common_proc.c | 289 ++++++++------------- lib/librte_eal/common/include/rte_eal_interrupts.h | 1 + lib/librte_eal/linuxapp/eal/eal.c | 10 +- lib/librte_eal/linuxapp/eal/eal_alarm.c | 9 +- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 18 +- test/test/test_interrupts.c | 29 ++- 6 files changed, 151 insertions(+), 205 deletions(-) -- 2.7.4