Skip to content

Commit

Permalink
mem: skip attaching external memory in secondary process
Browse files Browse the repository at this point in the history
[ upstream commit 90bf3f89ed33f78e9f41818caf123e13e508dee7 ]

Currently, EAL init in secondary processes will attach all fbarrays
in the memconfig to have access to the primary process's 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` [1] or `rte_malloc_heap_memory_attach` [2] calls.

1: https://doc.dpdk.org/api/rte__memory_8h.html#a2796da68de6825f8edf53759f8e4d230
2: https://doc.dpdk.org/api/rte__malloc_8h.html#af6360dea35bdf162feeb2b62cf149fd3

Fixes: ff3619d ("malloc: allow attaching to external memory chunks")

Suggested-by: Anatoly Burakov <anatoly.burakov@intel.com>
Signed-off-by: Deepak Khandelwal <deepak.khandelwal@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
  • Loading branch information
deepakkh87 authored and cpaelzer committed Jul 6, 2022
1 parent f921474 commit 6933433
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions lib/librte_eal/freebsd/eal/eal_memory.c
Expand Up @@ -508,8 +508,8 @@ memseg_secondary_init(void)

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)) {
Expand Down
4 changes: 2 additions & 2 deletions lib/librte_eal/linux/eal/eal_memory.c
Expand Up @@ -2423,8 +2423,8 @@ memseg_secondary_init(void)

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)) {
Expand Down

0 comments on commit 6933433

Please sign in to comment.