[PATCH v2 0/5] Defer lcore variables allocation
Frode Nordahl
frode.nordahl at canonical.com
Thu Dec 19 17:19:30 CET 2024
On Tue, Dec 17, 2024 at 10:00 AM David Marchand
<david.marchand at redhat.com> wrote:
>
> 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.
While I have not done code review of this series, I can confirm that
building Open vSwitch against DPDK built with this set of patches
resolves the issue outlined in
https://bugs.launchpad.net/ubuntu/+source/dpdk/+bug/2090931 as in just
linking against DPDK no longer make a program increase its resident
size.
Acked-by: Frode Nordahl <frode.nordahl at canonical.com>
Thanks alot for addressing the issue!
--
Frode Nordahl
> --
> 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