linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [mmotm] mm/page_owner: align with pageblock_nr_pages
@ 2017-12-04 13:48 zhong jiang
  2017-12-06  0:58 ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: zhong jiang @ 2017-12-04 13:48 UTC (permalink / raw)
  To: mhocko, vbabka, akpm; +Cc: linux-mm

Currently, init_pages_in_zone walk the zone in pageblock_nr_pages
steps.  MAX_ORDER_NR_PAGES is possible to have holes when
CONFIG_HOLES_IN_ZONE is set. it is likely to be different between
MAX_ORDER_NR_PAGES and pageblock_nr_pages. if we skip the size of
MAX_ORDER_NR_PAGES, it will result in the second 2M memroy leak.

meanwhile, the change will make the code consistent. because the
entire function is based on the pageblock_nr_pages steps.

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
---
 mm/page_owner.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_owner.c b/mm/page_owner.c
index 60634dc..754efdd 100644
--- a/mm/page_owner.c
+++ b/mm/page_owner.c
@@ -527,7 +527,7 @@ static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
 	 */
 	for (; pfn < end_pfn; ) {
 		if (!pfn_valid(pfn)) {
-			pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);
+			pfn = ALIGN(pfn + 1, pageblock_nr_pages);
 			continue;
 		}
 
-- 
1.8.3.1

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: [mmotm] mm/page_owner: align with pageblock_nr_pages
  2017-12-04 13:48 [mmotm] mm/page_owner: align with pageblock_nr_pages zhong jiang
@ 2017-12-06  0:58 ` Andrew Morton
  2017-12-06  2:44   ` zhong jiang
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2017-12-06  0:58 UTC (permalink / raw)
  To: zhong jiang; +Cc: mhocko, vbabka, linux-mm

On Mon, 4 Dec 2017 21:48:04 +0800 zhong jiang <zhongjiang@huawei.com> wrote:

> Currently, init_pages_in_zone walk the zone in pageblock_nr_pages
> steps.  MAX_ORDER_NR_PAGES is possible to have holes when
> CONFIG_HOLES_IN_ZONE is set. it is likely to be different between
> MAX_ORDER_NR_PAGES and pageblock_nr_pages. if we skip the size of
> MAX_ORDER_NR_PAGES, it will result in the second 2M memroy leak.
> 
> meanwhile, the change will make the code consistent. because the
> entire function is based on the pageblock_nr_pages steps.
> 
> ...
>
> --- a/mm/page_owner.c
> +++ b/mm/page_owner.c
> @@ -527,7 +527,7 @@ static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
>  	 */
>  	for (; pfn < end_pfn; ) {
>  		if (!pfn_valid(pfn)) {
> -			pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);
> +			pfn = ALIGN(pfn + 1, pageblock_nr_pages);
>  			continue;
>  		}

I *think* Michal and Vlastimil will be OK with this as-newly-presented.
Guys, can you please have another think?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: [mmotm] mm/page_owner: align with pageblock_nr_pages
  2017-12-06  0:58 ` Andrew Morton
@ 2017-12-06  2:44   ` zhong jiang
  2017-12-06  8:03     ` Michal Hocko
  0 siblings, 1 reply; 4+ messages in thread
From: zhong jiang @ 2017-12-06  2:44 UTC (permalink / raw)
  To: Andrew Morton; +Cc: mhocko, vbabka, linux-mm

On 2017/12/6 8:58, Andrew Morton wrote:
> On Mon, 4 Dec 2017 21:48:04 +0800 zhong jiang <zhongjiang@huawei.com> wrote:
>
>> Currently, init_pages_in_zone walk the zone in pageblock_nr_pages
>> steps.  MAX_ORDER_NR_PAGES is possible to have holes when
>> CONFIG_HOLES_IN_ZONE is set. it is likely to be different between
>> MAX_ORDER_NR_PAGES and pageblock_nr_pages. if we skip the size of
>> MAX_ORDER_NR_PAGES, it will result in the second 2M memroy leak.
>>
>> meanwhile, the change will make the code consistent. because the
>> entire function is based on the pageblock_nr_pages steps.
>>
>> ...
>>
>> --- a/mm/page_owner.c
>> +++ b/mm/page_owner.c
>> @@ -527,7 +527,7 @@ static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
>>  	 */
>>  	for (; pfn < end_pfn; ) {
>>  		if (!pfn_valid(pfn)) {
>> -			pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);
>> +			pfn = ALIGN(pfn + 1, pageblock_nr_pages);
>>  			continue;
>>  		}
> I *think* Michal and Vlastimil will be OK with this as-newly-presented.
> Guys, can you please have another think?
According to Vlastimil's comment,  it is not simple as it looks to cover all corners.
Maybe  architecture need explicit define the hole granularity to use correctly.
so far,  I have no a good idea to solve it perfectly. 
Anyway. I will go further to find out.

Thanks
zhong jiang


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: [mmotm] mm/page_owner: align with pageblock_nr_pages
  2017-12-06  2:44   ` zhong jiang
@ 2017-12-06  8:03     ` Michal Hocko
  0 siblings, 0 replies; 4+ messages in thread
From: Michal Hocko @ 2017-12-06  8:03 UTC (permalink / raw)
  To: zhong jiang; +Cc: Andrew Morton, vbabka, linux-mm

On Wed 06-12-17 10:44:23, zhong jiang wrote:
> On 2017/12/6 8:58, Andrew Morton wrote:
> > On Mon, 4 Dec 2017 21:48:04 +0800 zhong jiang <zhongjiang@huawei.com> wrote:
> >
> >> Currently, init_pages_in_zone walk the zone in pageblock_nr_pages
> >> steps.  MAX_ORDER_NR_PAGES is possible to have holes when
> >> CONFIG_HOLES_IN_ZONE is set. it is likely to be different between
> >> MAX_ORDER_NR_PAGES and pageblock_nr_pages. if we skip the size of
> >> MAX_ORDER_NR_PAGES, it will result in the second 2M memroy leak.
> >>
> >> meanwhile, the change will make the code consistent. because the
> >> entire function is based on the pageblock_nr_pages steps.
> >>
> >> ...
> >>
> >> --- a/mm/page_owner.c
> >> +++ b/mm/page_owner.c
> >> @@ -527,7 +527,7 @@ static void init_pages_in_zone(pg_data_t *pgdat, struct zone *zone)
> >>  	 */
> >>  	for (; pfn < end_pfn; ) {
> >>  		if (!pfn_valid(pfn)) {
> >> -			pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);
> >> +			pfn = ALIGN(pfn + 1, pageblock_nr_pages);
> >>  			continue;
> >>  		}
> > I *think* Michal and Vlastimil will be OK with this as-newly-presented.
> > Guys, can you please have another think?
> According to Vlastimil's comment,  it is not simple as it looks to cover all corners.
> Maybe  architecture need explicit define the hole granularity to use correctly.
> so far,  I have no a good idea to solve it perfectly. 
> Anyway. I will go further to find out.

Yes please! The thing is clear as mud right now and doing cosmetic
changes without further clarification doesn't help to improve the
situation much.
-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2017-12-06  8:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-04 13:48 [mmotm] mm/page_owner: align with pageblock_nr_pages zhong jiang
2017-12-06  0:58 ` Andrew Morton
2017-12-06  2:44   ` zhong jiang
2017-12-06  8:03     ` Michal Hocko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox