patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH] eal/linux: skip attaching to external memory chunk
@ 2022-04-04 12:32 Deepak Khandelwal
  2022-04-20 15:26 ` Burakov, Anatoly
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Deepak Khandelwal @ 2022-04-04 12:32 UTC (permalink / raw)
  To: anatoly.burakov; +Cc: dev, stable

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@dpdk.org

Signed-off-by: Deepak Khandelwal <deepak.khandelwal@intel.com>
Suggested-by: Anatoly Burakov <anatoly.burakov@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)) {
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] eal/linux: skip attaching to external memory chunk
  2022-04-04 12:32 [PATCH] eal/linux: skip attaching to external memory chunk Deepak Khandelwal
@ 2022-04-20 15:26 ` Burakov, Anatoly
  2022-04-20 15:32 ` Burakov, Anatoly
  2022-04-21  9:11 ` [PATCH v2] " Deepak Khandelwal
  2 siblings, 0 replies; 5+ messages in thread
From: Burakov, Anatoly @ 2022-04-20 15:26 UTC (permalink / raw)
  To: Deepak Khandelwal; +Cc: dev, stable

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@dpdk.org
> 
> Signed-off-by: Deepak Khandelwal <deepak.khandelwal@intel.com>
> Suggested-by: Anatoly Burakov <anatoly.burakov@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@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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] eal/linux: skip attaching to external memory chunk
  2022-04-04 12:32 [PATCH] eal/linux: skip attaching to external memory chunk Deepak Khandelwal
  2022-04-20 15:26 ` Burakov, Anatoly
@ 2022-04-20 15:32 ` Burakov, Anatoly
  2022-04-21  9:11 ` [PATCH v2] " Deepak Khandelwal
  2 siblings, 0 replies; 5+ messages in thread
From: Burakov, Anatoly @ 2022-04-20 15:32 UTC (permalink / raw)
  To: Deepak Khandelwal; +Cc: dev, stable

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@dpdk.org
> 
> Signed-off-by: Deepak Khandelwal <deepak.khandelwal@intel.com>
> Suggested-by: Anatoly Burakov <anatoly.burakov@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)) {

Actually, this needs to be implemented for BSD as well. Windows doesn't 
have support for secondary processes yet, so it's not applicable to 
Windows as far as i can tell.

-- 
Thanks,
Anatoly

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] eal/linux: skip attaching to external memory chunk
  2022-04-04 12:32 [PATCH] eal/linux: skip attaching to external memory chunk Deepak Khandelwal
  2022-04-20 15:26 ` Burakov, Anatoly
  2022-04-20 15:32 ` Burakov, Anatoly
@ 2022-04-21  9:11 ` Deepak Khandelwal
  2022-04-28 12:08   ` David Marchand
  2 siblings, 1 reply; 5+ messages in thread
From: Deepak Khandelwal @ 2022-04-21  9:11 UTC (permalink / raw)
  To: anatoly.burakov; +Cc: dev, stable, balaji.chintalapalle

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] eal/linux: skip attaching to external memory chunk
  2022-04-21  9:11 ` [PATCH v2] " Deepak Khandelwal
@ 2022-04-28 12:08   ` David Marchand
  0 siblings, 0 replies; 5+ messages in thread
From: David Marchand @ 2022-04-28 12:08 UTC (permalink / raw)
  To: Deepak Khandelwal
  Cc: Burakov, Anatoly, dev, dpdk stable, balaji.chintalapalle

On Thu, Apr 21, 2022 at 11:36 AM Deepak Khandelwal
<deepak.khandelwal@intel.com> wrote:
>
> 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>

Applied, thanks Deepak.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-04-28 12:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-04 12:32 [PATCH] eal/linux: skip attaching to external memory chunk Deepak Khandelwal
2022-04-20 15:26 ` Burakov, Anatoly
2022-04-20 15:32 ` Burakov, Anatoly
2022-04-21  9:11 ` [PATCH v2] " Deepak Khandelwal
2022-04-28 12:08   ` David Marchand

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ http://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git