[PATCH] eal/linux: skip attaching to external memory chunk

Burakov, Anatoly anatoly.burakov at intel.com
Wed Apr 20 17:26:37 CEST 2022


On 04-Apr-22 1:32 PM, Deepak Khandelwal wrote:
> when secondary process is initialized(rte_eal_init),
> external memroy segments should not be attached.
> These segments will be attached by explicitly invoking
> rte_malloc_heap_memory_attach API
> 
> Fixes: ff3619d6244b ("malloc: allow attaching to external memory chunks")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Deepak Khandelwal <deepak.khandelwal at intel.com>
> Suggested-by: Anatoly Burakov <anatoly.burakov at intel.com>
> ---
>   lib/eal/linux/eal_memory.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/eal/linux/eal_memory.c b/lib/eal/linux/eal_memory.c
> index ee1a9e6..18d2176 100644
> --- a/lib/eal/linux/eal_memory.c
> +++ b/lib/eal/linux/eal_memory.c
> @@ -1875,7 +1875,7 @@ void numa_error(char *where)
>   		msl = &mcfg->memsegs[msl_idx];
>   
>   		/* skip empty memseg lists */
> -		if (msl->memseg_arr.len == 0)
> +		if (msl->memseg_arr.len == 0 || msl->external)
>   			continue;
>   
>   		if (rte_fbarray_attach(&msl->memseg_arr)) {

Suggested rewording of commit message:

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.

Acked-by: Anatoly Burakov <anatoly.burakov at intel.com>

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

-- 
Thanks,
Anatoly


More information about the dev mailing list