eal: introduce thread init helper
authorDavid Marchand <david.marchand@redhat.com>
Mon, 6 Jul 2020 20:52:27 +0000 (22:52 +0200)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 8 Jul 2020 12:39:26 +0000 (14:39 +0200)
commit266b641ccf18f65f42c0396713bea1f051c9ff96
tree481989dedb88f55e647e50f92efcaf131c990112
parent3ef1a0b4a1711cfd4d4116d9ea91cf154fa059c6
eal: introduce thread init helper

Introduce a helper responsible for initialising the per thread context.
We can then have a unified context for EAL and non-EAL threads and
remove copy/paste'd OS-specific helpers.

Per EAL thread CPU affinity setting is separated from the thread init.
It is to accommodate with Windows EAL where CPU affinity is not set at
the moment.
Besides, having affinity set by the master lcore in FreeBSD and Linux
will make it possible to detect errors rather than panic in the child
thread. But the cleanup when such an event happens is left for later.

A side-effect of this patch is that control threads can now use
recursive locks (rte_gettid() was not called before).

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_eal/common/eal_common_thread.c
lib/librte_eal/common/eal_private.h
lib/librte_eal/common/eal_thread.h
lib/librte_eal/freebsd/eal.c
lib/librte_eal/freebsd/eal_thread.c
lib/librte_eal/linux/eal.c
lib/librte_eal/linux/eal_thread.c
lib/librte_eal/windows/eal.c
lib/librte_eal/windows/eal_thread.c