[PATCH v2 0/5] Defer lcore variables allocation
David Marchand
david.marchand at redhat.com
Tue Dec 17 09:59:47 CET 2024
As I had reported in rc2, the lcore variables allocation have a
noticeable impact on applications consuming DPDK, even when such
applications does not use DPDK, or use features associated to
some lcore variables.
While the amount has been reduced in a rush before rc2,
there are still cases when the increased memory footprint is noticed
like in scaling tests.
See https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/2090931
lcore variable allocations in constructor is a bad idea, as the
application consuming DPDK has no control over such allocation:
linking some code does not mean that all of it will be used at runtime.
The general question on whether lcore variables in constructor should
be forbidden, is left to a later discussion.
For now, this series only focus on fixing subsystems using lcore
variables so that those allocations are deferred either in rte_eal_init()
or in the path that does require such lcore variables.
--
David Marchand
Changes since v1:
- added a check on lcore handle,
- fixed lcore variable size in lib/power,
- renamed/introduced allocation helpers,
David Marchand (5):
eal: check lcore variable handle
random: defer seeding to EAL init
power: defer lcore variable allocation
power: reduce memory footprint of per-lcore state
eal/x86: defer power intrinsics variable allocation
lib/eal/common/eal_private.h | 6 ++++++
lib/eal/common/rte_random.c | 7 +++++--
lib/eal/freebsd/eal.c | 2 ++
lib/eal/include/rte_lcore_var.h | 2 ++
lib/eal/linux/eal.c | 2 ++
lib/eal/windows/eal.c | 2 ++
lib/eal/x86/rte_power_intrinsics.c | 15 +++++++++++++--
lib/power/rte_power_pmd_mgmt.c | 29 ++++++++++++++++++++---------
8 files changed, 52 insertions(+), 13 deletions(-)
--
2.47.0
More information about the dev
mailing list