2015-08-25 14:06:49

by Yaowei Bai

[permalink] [raw]
Subject: [PATCH 1/2] mm/page_alloc: change sysctl_lower_zone_reserve_ratio to sysctl_lowmem_reserve_ratio

We use sysctl_lowmem_reserve_ratio rather than sysctl_lower_zone_reserve_ratio to
determine how aggressive the kernel is in defending lowmem from the possibility of
being captured into pinned user memory. To avoid misleading, correct it in some
comments.

Signed-off-by: Yaowei Bai <[email protected]>
---
mm/page_alloc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 0a0acdb..b730f7d 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -6043,7 +6043,7 @@ void __init page_alloc_init(void)
}

/*
- * calculate_totalreserve_pages - called when sysctl_lower_zone_reserve_ratio
+ * calculate_totalreserve_pages - called when sysctl_lowmem_reserve_ratio
* or min_free_kbytes changes.
*/
static void calculate_totalreserve_pages(void)
@@ -6087,7 +6087,7 @@ static void calculate_totalreserve_pages(void)

/*
* setup_per_zone_lowmem_reserve - called whenever
- * sysctl_lower_zone_reserve_ratio changes. Ensures that each zone
+ * sysctl_lowmem_reserve_ratio changes. Ensures that each zone
* has a correct pages reserved value, so an adequate number of
* pages are left in the zone after a successful __alloc_pages().
*/
--
1.9.1


2015-08-25 14:06:57

by Yaowei Bai

[permalink] [raw]
Subject: [PATCH 2/2] Documentation: clarify in calculating zone protection

Every zone's protection is calculated from managed_pages not
present_pages, to avoid misleading, correct it.

Signed-off-by: Yaowei Bai <[email protected]>
---
Documentation/sysctl/vm.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index 9832ec5..1739b31 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -349,7 +349,7 @@ zone[i]'s protection[j] is calculated by following expression.

(i < j):
zone[i]->protection[j]
- = (total sums of present_pages from zone[i+1] to zone[j] on the node)
+ = (total sums of managed_pages from zone[i+1] to zone[j] on the node)
/ lowmem_reserve_ratio[i];
(i = j):
(should not be protected. = 0;
@@ -360,7 +360,7 @@ The default values of lowmem_reserve_ratio[i] are
256 (if zone[i] means DMA or DMA32 zone)
32 (others).
As above expression, they are reciprocal number of ratio.
-256 means 1/256. # of protection pages becomes about "0.39%" of total present
+256 means 1/256. # of protection pages becomes about "0.39%" of total managed
pages of higher zones on the node.

If you would like to protect more pages, smaller values are effective.
--
1.9.1

2015-08-25 15:06:37

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH 2/2] Documentation: clarify in calculating zone protection

On Tue 25-08-15 22:01:31, Yaowei Bai wrote:
> Every zone's protection is calculated from managed_pages not
> present_pages, to avoid misleading, correct it.

This can be folded in to your previous patch
http://marc.info/?l=linux-mm&m=144023106610358&w=2

>
> Signed-off-by: Yaowei Bai <[email protected]>
> ---
> Documentation/sysctl/vm.txt | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
> index 9832ec5..1739b31 100644
> --- a/Documentation/sysctl/vm.txt
> +++ b/Documentation/sysctl/vm.txt
> @@ -349,7 +349,7 @@ zone[i]'s protection[j] is calculated by following expression.
>
> (i < j):
> zone[i]->protection[j]
> - = (total sums of present_pages from zone[i+1] to zone[j] on the node)
> + = (total sums of managed_pages from zone[i+1] to zone[j] on the node)
> / lowmem_reserve_ratio[i];
> (i = j):
> (should not be protected. = 0;
> @@ -360,7 +360,7 @@ The default values of lowmem_reserve_ratio[i] are
> 256 (if zone[i] means DMA or DMA32 zone)
> 32 (others).
> As above expression, they are reciprocal number of ratio.
> -256 means 1/256. # of protection pages becomes about "0.39%" of total present
> +256 means 1/256. # of protection pages becomes about "0.39%" of total managed
> pages of higher zones on the node.
>
> If you would like to protect more pages, smaller values are effective.
> --
> 1.9.1
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Michal Hocko
SUSE Labs

2015-08-25 15:28:27

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH 1/2] mm/page_alloc: change sysctl_lower_zone_reserve_ratio to sysctl_lowmem_reserve_ratio

On Tue 25-08-15 22:01:30, Yaowei Bai wrote:
> We use sysctl_lowmem_reserve_ratio rather than sysctl_lower_zone_reserve_ratio to
> determine how aggressive the kernel is in defending lowmem from the possibility of
> being captured into pinned user memory. To avoid misleading, correct it in some
> comments.

We never had a sysctl like that AFAICS in git history.

> Signed-off-by: Yaowei Bai <[email protected]>

Acked-by: Michal Hocko <[email protected]>

> ---
> mm/page_alloc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 0a0acdb..b730f7d 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -6043,7 +6043,7 @@ void __init page_alloc_init(void)
> }
>
> /*
> - * calculate_totalreserve_pages - called when sysctl_lower_zone_reserve_ratio
> + * calculate_totalreserve_pages - called when sysctl_lowmem_reserve_ratio
> * or min_free_kbytes changes.
> */
> static void calculate_totalreserve_pages(void)
> @@ -6087,7 +6087,7 @@ static void calculate_totalreserve_pages(void)
>
> /*
> * setup_per_zone_lowmem_reserve - called whenever
> - * sysctl_lower_zone_reserve_ratio changes. Ensures that each zone
> + * sysctl_lowmem_reserve_ratio changes. Ensures that each zone
> * has a correct pages reserved value, so an adequate number of
> * pages are left in the zone after a successful __alloc_pages().
> */
> --
> 1.9.1
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Michal Hocko
SUSE Labs

2015-08-25 23:33:23

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH 2/2] Documentation: clarify in calculating zone protection

On Tue, 25 Aug 2015, Yaowei Bai wrote:

> Every zone's protection is calculated from managed_pages not
> present_pages, to avoid misleading, correct it.
>
> Signed-off-by: Yaowei Bai <[email protected]>

Acked-by: David Rientjes <[email protected]>

2015-08-25 23:33:39

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH 1/2] mm/page_alloc: change sysctl_lower_zone_reserve_ratio to sysctl_lowmem_reserve_ratio

On Tue, 25 Aug 2015, Yaowei Bai wrote:

> We use sysctl_lowmem_reserve_ratio rather than sysctl_lower_zone_reserve_ratio to
> determine how aggressive the kernel is in defending lowmem from the possibility of
> being captured into pinned user memory. To avoid misleading, correct it in some
> comments.
>
> Signed-off-by: Yaowei Bai <[email protected]>

Acked-by: David Rientjes <[email protected]>

2015-08-26 14:50:10

by Yaowei Bai

[permalink] [raw]
Subject: Re: [PATCH 2/2] Documentation: clarify in calculating zone protection

On Tue, Aug 25, 2015 at 05:06:33PM +0200, Michal Hocko wrote:
> On Tue 25-08-15 22:01:31, Yaowei Bai wrote:
> > Every zone's protection is calculated from managed_pages not
> > present_pages, to avoid misleading, correct it.
>
> This can be folded in to your previous patch
> http://marc.info/?l=linux-mm&m=144023106610358&w=2

OK, thanks.

>
> >
> > Signed-off-by: Yaowei Bai <[email protected]>
> > ---
> > Documentation/sysctl/vm.txt | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
> > index 9832ec5..1739b31 100644
> > --- a/Documentation/sysctl/vm.txt
> > +++ b/Documentation/sysctl/vm.txt
> > @@ -349,7 +349,7 @@ zone[i]'s protection[j] is calculated by following expression.
> >
> > (i < j):
> > zone[i]->protection[j]
> > - = (total sums of present_pages from zone[i+1] to zone[j] on the node)
> > + = (total sums of managed_pages from zone[i+1] to zone[j] on the node)
> > / lowmem_reserve_ratio[i];
> > (i = j):
> > (should not be protected. = 0;
> > @@ -360,7 +360,7 @@ The default values of lowmem_reserve_ratio[i] are
> > 256 (if zone[i] means DMA or DMA32 zone)
> > 32 (others).
> > As above expression, they are reciprocal number of ratio.
> > -256 means 1/256. # of protection pages becomes about "0.39%" of total present
> > +256 means 1/256. # of protection pages becomes about "0.39%" of total managed
> > pages of higher zones on the node.
> >
> > If you would like to protect more pages, smaller values are effective.
> > --
> > 1.9.1
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
>
> --
> Michal Hocko
> SUSE Labs