DPDK patches and discussions
 help / color / mirror / Atom feed
From: Deepak Khandelwal <deepak.khandelwal@intel.com>
To: anatoly.burakov@intel.com
Cc: dev@dpdk.org, stable@dpdk.org, balaji.chintalapalle@intel.com
Subject: [PATCH v2] eal/linux: skip attaching to external memory chunk
Date: Thu, 21 Apr 2022 14:41:21 +0530	[thread overview]
Message-ID: <1650532281-193591-1-git-send-email-deepak.khandelwal@intel.com> (raw)
In-Reply-To: <1649075577-67300-1-git-send-email-deepak.khandelwal@intel.com>

Currently, EAL init in secondary processes will attach all fbarrays
in the memconfig to have access to primary process' page tables.
However, fbarrays corresponding to external memory segments should
not be attached at initialization, because this will happen as part
of `rte_extmem_attach` or `rte_malloc_heap_memory_attach` calls.

Both external memory API's document this:

rte_malloc:
http://doc.dpdk.org/api/rte__malloc_8h.html#af6360dea35bdf162feeb2b62cf149fd3

rte_extmem:
http://doc.dpdk.org/api/rte__memory_8h.html#a2796da68de6825f8edf53759f8e4d230

Fixes: ff3619d6244b ("malloc: allow attaching to external memory chunks")
Cc: stable@dpdk.org

Signed-off-by: Deepak Khandelwal <deepak.khandelwal@intel.com>
Suggested-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

---
v2:
* commit message updated and handle for BSD
---
 lib/eal/freebsd/eal_memory.c | 4 ++--
 lib/eal/linux/eal_memory.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/eal/freebsd/eal_memory.c b/lib/eal/freebsd/eal_memory.c
index 78ac142..17ab10e 100644
--- a/lib/eal/freebsd/eal_memory.c
+++ b/lib/eal/freebsd/eal_memory.c
@@ -446,8 +446,8 @@ struct attach_walk_args {
 
 		msl = &mcfg->memsegs[msl_idx];
 
-		/* skip empty memseg lists */
-		if (msl->memseg_arr.len == 0)
+		/* skip empty and external memseg lists */
+		if (msl->memseg_arr.len == 0 || msl->external)
 			continue;
 
 		if (rte_fbarray_attach(&msl->memseg_arr)) {
diff --git a/lib/eal/linux/eal_memory.c b/lib/eal/linux/eal_memory.c
index ee1a9e6..c890c42 100644
--- a/lib/eal/linux/eal_memory.c
+++ b/lib/eal/linux/eal_memory.c
@@ -1874,8 +1874,8 @@ void numa_error(char *where)
 
 		msl = &mcfg->memsegs[msl_idx];
 
-		/* skip empty memseg lists */
-		if (msl->memseg_arr.len == 0)
+		/* skip empty and external memseg lists */
+		if (msl->memseg_arr.len == 0 || msl->external)
 			continue;
 
 		if (rte_fbarray_attach(&msl->memseg_arr)) {
-- 
1.8.3.1


  parent reply	other threads:[~2022-04-21  9:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-04 12:32 [PATCH] " Deepak Khandelwal
2022-04-20 15:26 ` Burakov, Anatoly
2022-04-20 15:32 ` Burakov, Anatoly
2022-04-21  9:11 ` Deepak Khandelwal [this message]
2022-04-28 12:08   ` [PATCH v2] " David Marchand

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=1650532281-193591-1-git-send-email-deepak.khandelwal@intel.com \
    --to=deepak.khandelwal@intel.com \
    --cc=anatoly.burakov@intel.com \
    --cc=balaji.chintalapalle@intel.com \
    --cc=dev@dpdk.org \
    --cc=stable@dpdk.org \
    /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).