DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: anatoly.burakov@intel.com,
	"Mattias Rönnblom" <mattias.ronnblom@ericsson.com>,
	"Bruce Richardson" <bruce.richardson@intel.com>,
	"Dmitry Kozlyuk" <dmitry.kozliuk@gmail.com>
Cc: David Marchand <david.marchand@redhat.com>, dev@dpdk.org
Subject: strange DPDK memory allocator behavior
Date: Fri, 08 Nov 2024 16:03:33 +0100	[thread overview]
Message-ID: <5579642.iZASKD2KPV@thomas> (raw)

Hello,

After merging the lcore variables allocation from Mattias,
we've seen an issue in unit tests running on 32-bit plaftorms:
	https://build.opensuse.org/package/live_build_log/home:bluca:dpdk/dpdk/Debian_Testing/i586
The initialization has this error message "most of the time":
	EAL: Cannot get a virtual area: Cannot allocate memory

David did more tests with this command:
 
# (for i in $(seq 10); do echo | LD_LIBRARY_PATH=lib:drivers app/dpdk-test --no-huge -m 2048 -d drivers; done) |& grep 'Cannot get a virtual area: Cannot allocate memory'

EAL: Cannot get a virtual area: Cannot allocate memory
EAL: Cannot get a virtual area: Cannot allocate memory
EAL: Cannot get a virtual area: Cannot allocate memory

There are 2 interesting findings:

- the issue disappears when changing allocation size 2048
  to more (4096) or less (1024)

- the issue disappears when removing some big static arrays from unit tests
  like "sarray_lcore_state" in test_lcore_var_perf.c
  Should we avoid having such big arrays in our unit tests?

I don't understand how "-m 2048" is impacted by the static allocations.
And I wonder how it could impact memory fragmentation
so 2048 MB cannot be allocated but more or less are working fine.

It looks like an issue in the DPDK allocator.
Note that we are using --no-huge for these tests.
Any ideas?



             reply	other threads:[~2024-11-08 15:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-08 15:03 Thomas Monjalon [this message]
2024-11-08 16:08 ` Mattias Rönnblom
2024-11-08 16:15   ` Mattias Rönnblom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5579642.iZASKD2KPV@thomas \
    --to=thomas@monjalon.net \
    --cc=anatoly.burakov@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=mattias.ronnblom@ericsson.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).