mem: mark pages as not accessed when returning back to memory pool

Message ID 20200424104205.26846-1-fengli@smartx.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series mem: mark pages as not accessed when returning back to memory pool |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/travis-robot warning Travis build: failed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation fail apply issues
ci/iol-testing fail Testing issues

Commit Message

Li Feng April 24, 2020, 10:42 a.m. UTC
  Commit 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
has mapped the initialized memory with PROT_NONE, and when it's unmapped,
eal_memalloc.c should remmap the anonymous memory with PROT_NONE too.

Signed-off-by: Li Feng <fengli@smartx.com>
---
 lib/librte_eal/linux/eal_memalloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Anatoly Burakov April 24, 2020, 11:25 a.m. UTC | #1
On 24-Apr-20 11:42 AM, Li Feng wrote:
> Commit 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
> has mapped the initialized memory with PROT_NONE, and when it's unmapped,
> eal_memalloc.c should remmap the anonymous memory with PROT_NONE too.
> 
> Signed-off-by: Li Feng <fengli@smartx.com>
> ---
>   lib/librte_eal/linux/eal_memalloc.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/linux/eal_memalloc.c b/lib/librte_eal/linux/eal_memalloc.c
> index 9d2a6fc6f..64a2b44c1 100644
> --- a/lib/librte_eal/linux/eal_memalloc.c
> +++ b/lib/librte_eal/linux/eal_memalloc.c
> @@ -683,7 +683,7 @@ free_seg(struct rte_memseg *ms, struct hugepage_info *hi,
>   	/* erase page data */
>   	memset(ms->addr, 0, ms->len);
>   
> -	if (mmap(ms->addr, ms->len, PROT_READ,
> +	if (mmap(ms->addr, ms->len, PROT_NONE,
>   			MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0) ==
>   				MAP_FAILED) {
>   		RTE_LOG(DEBUG, EAL, "couldn't unmap page\n");
> 

Fixes: 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
Cc: david.marchand@redhat.com
Cc: stable@dpdk.org

Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
  
David Marchand April 24, 2020, 5:10 p.m. UTC | #2
On Fri, Apr 24, 2020 at 12:43 PM Li Feng <fengli@smartx.com> wrote:
>
> Commit 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
> has mapped the initialized memory with PROT_NONE, and when it's unmapped,
> eal_memalloc.c should remmap the anonymous memory with PROT_NONE too.
>
> Signed-off-by: Li Feng <fengli@smartx.com>

Fixes: 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
Cc: stable@dpdk.org

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

Applied, thanks.



Please for future contributions, could you get this footer removed?

> The SmartX email address is only for business purpose. Any sent message
> that is not related to the business is not authorized or permitted by
> SmartX.
> 本邮箱为北京志凌海纳科技有限公司(SmartX)工作邮箱. 如本邮箱发出的邮件与工作无关,该邮件未得到本公司任何的明示或默示的授权.
  
Li Feng April 26, 2020, 2:51 a.m. UTC | #3
Thanks,

Feng Li

David Marchand <david.marchand@redhat.com> 于2020年4月25日周六 上午1:10写道:
>
> On Fri, Apr 24, 2020 at 12:43 PM Li Feng <fengli@smartx.com> wrote:
> >
> > Commit 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
> > has mapped the initialized memory with PROT_NONE, and when it's unmapped,
> > eal_memalloc.c should remmap the anonymous memory with PROT_NONE too.
> >
> > Signed-off-by: Li Feng <fengli@smartx.com>
>
> Fixes: 8a4baf06c17a ("mem: mark pages as not accessed when reserving VA")
> Cc: stable@dpdk.org
>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
>
> Applied, thanks.
>
>
>
> Please for future contributions, could you get this footer removed?
I think It's attached by the corporation mail server.
Maybe I need ask IT department for help.

>
> > The SmartX email address is only for business purpose. Any sent message
> > that is not related to the business is not authorized or permitted by
> > SmartX.
> > 本邮箱为北京志凌海纳科技有限公司(SmartX)工作邮箱. 如本邮箱发出的邮件与工作无关,该邮件未得到本公司任何的明示或默示的授权.
>
>
> --
> David Marchand
>
  

Patch

diff --git a/lib/librte_eal/linux/eal_memalloc.c b/lib/librte_eal/linux/eal_memalloc.c
index 9d2a6fc6f..64a2b44c1 100644
--- a/lib/librte_eal/linux/eal_memalloc.c
+++ b/lib/librte_eal/linux/eal_memalloc.c
@@ -683,7 +683,7 @@  free_seg(struct rte_memseg *ms, struct hugepage_info *hi,
 	/* erase page data */
 	memset(ms->addr, 0, ms->len);
 
-	if (mmap(ms->addr, ms->len, PROT_READ,
+	if (mmap(ms->addr, ms->len, PROT_NONE,
 			MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0) ==
 				MAP_FAILED) {
 		RTE_LOG(DEBUG, EAL, "couldn't unmap page\n");