Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1241928 > unrolled thread

[PATCH] mm: skip if required_kernelcore is larger than totalpages

Started byXishi Qiu <qiuxishi@huawei.com>
First post2015-10-08 04:30 +0200
Last post2015-10-14 04:40 +0200
Articles 8 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] mm: skip if required_kernelcore is larger than totalpages Xishi Qiu <qiuxishi@huawei.com> - 2015-10-08 04:30 +0200
    Re: [PATCH] mm: skip if required_kernelcore is larger than  totalpages Yasuaki Ishimatsu <yasu.isimatu@gmail.com> - 2015-10-09 17:50 +0200
      Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages Xishi Qiu <qiuxishi@huawei.com> - 2015-10-12 03:50 +0200
        Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages Tang Chen <tangchen@cn.fujitsu.com> - 2015-10-14 05:00 +0200
          Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages Xishi Qiu <qiuxishi@huawei.com> - 2015-10-14 05:40 +0200
            Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages Tang Chen <tangchen@cn.fujitsu.com> - 2015-10-14 06:10 +0200
        Re: [PATCH] mm: skip if required_kernelcore is larger than  totalpages Yasuaki Ishimatsu <yasu.isimatu@gmail.com> - 2015-10-16 19:00 +0200
    Re: [PATCH] mm: skip if required_kernelcore is larger than  totalpages David Rientjes <rientjes@google.com> - 2015-10-14 04:40 +0200

#1241928 — [PATCH] mm: skip if required_kernelcore is larger than totalpages

FromXishi Qiu <qiuxishi@huawei.com>
Date2015-10-08 04:30 +0200
Subject[PATCH] mm: skip if required_kernelcore is larger than totalpages
Message-ID<qh97X-6O3-3@gated-at.bofh.it>
If kernelcore was not specified, or the kernelcore size is zero
(required_movablecore >= totalpages), or the kernelcore size is larger
than totalpages, there is no ZONE_MOVABLE. We should fill the zone
with both kernel memory and movable memory.

Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
---
 mm/page_alloc.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index af3c9bd..6a6da0d 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5674,8 +5674,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
 		required_kernelcore = max(required_kernelcore, corepages);
 	}
 
-	/* If kernelcore was not specified, there is no ZONE_MOVABLE */
-	if (!required_kernelcore)
+	/*
+	 * If kernelcore was not specified or kernelcore size is larger
+	 * than totalpages, there is no ZONE_MOVABLE.
+	 */
+	if (!required_kernelcore || required_kernelcore >= totalpages)
 		goto out;
 
 	/* usable_startpfn is the lowest possible pfn ZONE_MOVABLE can be at */
-- 
2.0.0


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1243485 — Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages

FromYasuaki Ishimatsu <yasu.isimatu@gmail.com>
Date2015-10-09 17:50 +0200
SubjectRe: [PATCH] mm: skip if required_kernelcore is larger than totalpages
Message-ID<qhI5I-6qA-11@gated-at.bofh.it>
In reply to#1241928
On Thu, 8 Oct 2015 10:21:05 +0800
Xishi Qiu <qiuxishi@huawei.com> wrote:

> If kernelcore was not specified, or the kernelcore size is zero
> (required_movablecore >= totalpages), or the kernelcore size is larger

Why does required_movablecore become larger than totalpages, when the
kernelcore size is zero? I read the code but I could not find that you
mention.

Thanks,
Yasuaki Ishimatsu

> than totalpages, there is no ZONE_MOVABLE. We should fill the zone
> with both kernel memory and movable memory.
> 
> Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
> ---
>  mm/page_alloc.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index af3c9bd..6a6da0d 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -5674,8 +5674,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
>  		required_kernelcore = max(required_kernelcore, corepages);
>  	}
>  
> -	/* If kernelcore was not specified, there is no ZONE_MOVABLE */
> -	if (!required_kernelcore)
> +	/*
> +	 * If kernelcore was not specified or kernelcore size is larger
> +	 * than totalpages, there is no ZONE_MOVABLE.
> +	 */
> +	if (!required_kernelcore || required_kernelcore >= totalpages)
>  		goto out;
>  
>  	/* usable_startpfn is the lowest possible pfn ZONE_MOVABLE can be at */
> -- 
> 2.0.0
> 
> 
> --
> 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>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1244331

FromXishi Qiu <qiuxishi@huawei.com>
Date2015-10-12 03:50 +0200
Message-ID<qiApr-10e-1@gated-at.bofh.it>
In reply to#1243485
On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:

> 
> On Thu, 8 Oct 2015 10:21:05 +0800
> Xishi Qiu <qiuxishi@huawei.com> wrote:
> 
>> If kernelcore was not specified, or the kernelcore size is zero
>> (required_movablecore >= totalpages), or the kernelcore size is larger
> 
> Why does required_movablecore become larger than totalpages, when the
> kernelcore size is zero? I read the code but I could not find that you
> mention.
> 

If user only set boot option movablecore, and the value is larger than
totalpages, the calculation of kernelcore is zero, but we can't fill
the zone only with kernelcore, so skip it.

I have send a patch before this patch.
"fix overflow in find_zone_movable_pfns_for_nodes()"
		...
 		required_movablecore =
 			roundup(required_movablecore, MAX_ORDER_NR_PAGES);
+		required_movablecore = min(totalpages, required_movablecore);
 		corepages = totalpages - required_movablecore;
		...

Thanks,
Xishi Qiu

> Thanks,
> Yasuaki Ishimatsu
> 
>> than totalpages, there is no ZONE_MOVABLE. We should fill the zone
>> with both kernel memory and movable memory.
>>
>> Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
>> ---
>>  mm/page_alloc.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index af3c9bd..6a6da0d 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -5674,8 +5674,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
>>  		required_kernelcore = max(required_kernelcore, corepages);
>>  	}
>>  
>> -	/* If kernelcore was not specified, there is no ZONE_MOVABLE */
>> -	if (!required_kernelcore)
>> +	/*
>> +	 * If kernelcore was not specified or kernelcore size is larger
>> +	 * than totalpages, there is no ZONE_MOVABLE.
>> +	 */
>> +	if (!required_kernelcore || required_kernelcore >= totalpages)
>>  		goto out;
>>  
>>  	/* usable_startpfn is the lowest possible pfn ZONE_MOVABLE can be at */
>> -- 
>> 2.0.0
>>
>>
>> --
>> 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>
> 
> .
> 



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1246270

FromTang Chen <tangchen@cn.fujitsu.com>
Date2015-10-14 05:00 +0200
Message-ID<qjksi-1RY-9@gated-at.bofh.it>
In reply to#1244331
Hi, Qiu

The patch seems OK to me. Only one little concern below.

On 10/12/2015 09:37 AM, Xishi Qiu wrote:
> On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:
>
>> On Thu, 8 Oct 2015 10:21:05 +0800
>> Xishi Qiu <qiuxishi@huawei.com> wrote:
>>
>>> If kernelcore was not specified, or the kernelcore size is zero
>>> (required_movablecore >= totalpages), or the kernelcore size is larger
>> Why does required_movablecore become larger than totalpages, when the
>> kernelcore size is zero? I read the code but I could not find that you
>> mention.
>>
> If user only set boot option movablecore, and the value is larger than
> totalpages, the calculation of kernelcore is zero, but we can't fill
> the zone only with kernelcore, so skip it.
>
> I have send a patch before this patch.
> "fix overflow in find_zone_movable_pfns_for_nodes()"
> 		...
>   		required_movablecore =
>   			roundup(required_movablecore, MAX_ORDER_NR_PAGES);
> +		required_movablecore = min(totalpages, required_movablecore);
>   		corepages = totalpages - required_movablecore;
> 		...


So if required_movablecore >= totalpages, there won't be any ZONE_MOVABLE.
How about add a warning or debug info to tell the user he has specified a
too large movablecore, and it is ignored ?

Thanks.


>
> Thanks,
> Xishi Qiu
>
>> Thanks,
>> Yasuaki Ishimatsu
>>
>>> than totalpages, there is no ZONE_MOVABLE. We should fill the zone
>>> with both kernel memory and movable memory.
>>>
>>> Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
>>> ---
>>>   mm/page_alloc.c | 7 +++++--
>>>   1 file changed, 5 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>>> index af3c9bd..6a6da0d 100644
>>> --- a/mm/page_alloc.c
>>> +++ b/mm/page_alloc.c
>>> @@ -5674,8 +5674,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
>>>   		required_kernelcore = max(required_kernelcore, corepages);
>>>   	}
>>>   
>>> -	/* If kernelcore was not specified, there is no ZONE_MOVABLE */
>>> -	if (!required_kernelcore)
>>> +	/*
>>> +	 * If kernelcore was not specified or kernelcore size is larger
>>> +	 * than totalpages, there is no ZONE_MOVABLE.
>>> +	 */
>>> +	if (!required_kernelcore || required_kernelcore >= totalpages)
>>>   		goto out;
>>>   
>>>   	/* usable_startpfn is the lowest possible pfn ZONE_MOVABLE can be at */
>>> -- 
>>> 2.0.0
>>>
>>>
>>> --
>>> 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>
>> .
>>
>
>
> .
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1246282

FromXishi Qiu <qiuxishi@huawei.com>
Date2015-10-14 05:40 +0200
Message-ID<qjl4Z-2Ud-3@gated-at.bofh.it>
In reply to#1246270
On 2015/10/14 10:50, Tang Chen wrote:

> Hi, Qiu
> 
> The patch seems OK to me. Only one little concern below.
> 
> On 10/12/2015 09:37 AM, Xishi Qiu wrote:
>> On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:
>>
>>> On Thu, 8 Oct 2015 10:21:05 +0800
>>> Xishi Qiu <qiuxishi@huawei.com> wrote:
>>>
>>>> If kernelcore was not specified, or the kernelcore size is zero
>>>> (required_movablecore >= totalpages), or the kernelcore size is larger
>>> Why does required_movablecore become larger than totalpages, when the
>>> kernelcore size is zero? I read the code but I could not find that you
>>> mention.
>>>
>> If user only set boot option movablecore, and the value is larger than
>> totalpages, the calculation of kernelcore is zero, but we can't fill
>> the zone only with kernelcore, so skip it.
>>
>> I have send a patch before this patch.
>> "fix overflow in find_zone_movable_pfns_for_nodes()"
>>         ...
>>           required_movablecore =
>>               roundup(required_movablecore, MAX_ORDER_NR_PAGES);
>> +        required_movablecore = min(totalpages, required_movablecore);
>>           corepages = totalpages - required_movablecore;
>>         ...
> 
> 
> So if required_movablecore >= totalpages, there won't be any ZONE_MOVABLE.
> How about add a warning or debug info to tell the user he has specified a
> too large movablecore, and it is ignored ?
> 
> Thanks.

Yes, but I don't think is is necessary, user should know the total memory
before he set the boot option.

Thanks,
Xishi Qiu

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1246293

FromTang Chen <tangchen@cn.fujitsu.com>
Date2015-10-14 06:10 +0200
Message-ID<qjly2-3OG-7@gated-at.bofh.it>
In reply to#1246282
On 10/14/2015 11:28 AM, Xishi Qiu wrote:
> On 2015/10/14 10:50, Tang Chen wrote:
>
>> Hi, Qiu
>>
>> The patch seems OK to me. Only one little concern below.
>>
>> On 10/12/2015 09:37 AM, Xishi Qiu wrote:
>>> On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:
>>>
>>>> On Thu, 8 Oct 2015 10:21:05 +0800
>>>> Xishi Qiu <qiuxishi@huawei.com> wrote:
>>>>
>>>>> If kernelcore was not specified, or the kernelcore size is zero
>>>>> (required_movablecore >= totalpages), or the kernelcore size is larger
>>>> Why does required_movablecore become larger than totalpages, when the
>>>> kernelcore size is zero? I read the code but I could not find that you
>>>> mention.
>>>>
>>> If user only set boot option movablecore, and the value is larger than
>>> totalpages, the calculation of kernelcore is zero, but we can't fill
>>> the zone only with kernelcore, so skip it.
>>>
>>> I have send a patch before this patch.
>>> "fix overflow in find_zone_movable_pfns_for_nodes()"
>>>          ...
>>>            required_movablecore =
>>>                roundup(required_movablecore, MAX_ORDER_NR_PAGES);
>>> +        required_movablecore = min(totalpages, required_movablecore);
>>>            corepages = totalpages - required_movablecore;
>>>          ...
>>
>> So if required_movablecore >= totalpages, there won't be any ZONE_MOVABLE.
>> How about add a warning or debug info to tell the user he has specified a
>> too large movablecore, and it is ignored ?
>>
>> Thanks.
> Yes, but I don't think is is necessary, user should know the total memory
> before he set the boot option.

Well, I'm just thinking if I set a too large movablecore, but I didn't 
realize it.
And when the system boots up, there is no ZONE_MOVABLE. It may confuse me.

Thanks.

>
> Thanks,
> Xishi Qiu
>
> .
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1248979 — Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages

FromYasuaki Ishimatsu <yasu.isimatu@gmail.com>
Date2015-10-16 19:00 +0200
SubjectRe: [PATCH] mm: skip if required_kernelcore is larger than totalpages
Message-ID<qkgwh-3Qz-5@gated-at.bofh.it>
In reply to#1244331
On Mon, 12 Oct 2015 09:37:17 +0800
Xishi Qiu <qiuxishi@huawei.com> wrote:

> On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:
> 
> > 
> > On Thu, 8 Oct 2015 10:21:05 +0800
> > Xishi Qiu <qiuxishi@huawei.com> wrote:
> > 
> >> If kernelcore was not specified, or the kernelcore size is zero
> >> (required_movablecore >= totalpages), or the kernelcore size is larger
> > 
> > Why does required_movablecore become larger than totalpages, when the
> > kernelcore size is zero? I read the code but I could not find that you
> > mention.
> > 
> 
> If user only set boot option movablecore, and the value is larger than
> totalpages, the calculation of kernelcore is zero, but we can't fill
> the zone only with kernelcore, so skip it.

Thank you for the explantion. Your patch looks good to me.

Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>

Thanks,
Yasuaki Ishimatsu

> 
> I have send a patch before this patch.
> "fix overflow in find_zone_movable_pfns_for_nodes()"
> 		...
>  		required_movablecore =
>  			roundup(required_movablecore, MAX_ORDER_NR_PAGES);
> +		required_movablecore = min(totalpages, required_movablecore);
>  		corepages = totalpages - required_movablecore;
> 		...
> 
> Thanks,
> Xishi Qiu
> 
> > Thanks,
> > Yasuaki Ishimatsu
> > 
> >> than totalpages, there is no ZONE_MOVABLE. We should fill the zone
> >> with both kernel memory and movable memory.
> >>
> >> Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
> >> ---
> >>  mm/page_alloc.c | 7 +++++--
> >>  1 file changed, 5 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> >> index af3c9bd..6a6da0d 100644
> >> --- a/mm/page_alloc.c
> >> +++ b/mm/page_alloc.c
> >> @@ -5674,8 +5674,11 @@ static void __init find_zone_movable_pfns_for_nodes(void)
> >>  		required_kernelcore = max(required_kernelcore, corepages);
> >>  	}
> >>  
> >> -	/* If kernelcore was not specified, there is no ZONE_MOVABLE */
> >> -	if (!required_kernelcore)
> >> +	/*
> >> +	 * If kernelcore was not specified or kernelcore size is larger
> >> +	 * than totalpages, there is no ZONE_MOVABLE.
> >> +	 */
> >> +	if (!required_kernelcore || required_kernelcore >= totalpages)
> >>  		goto out;
> >>  
> >>  	/* usable_startpfn is the lowest possible pfn ZONE_MOVABLE can be at */
> >> -- 
> >> 2.0.0
> >>
> >>
> >> --
> >> 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>
> > 
> > .
> > 
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1246263 — Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages

FromDavid Rientjes <rientjes@google.com>
Date2015-10-14 04:40 +0200
SubjectRe: [PATCH] mm: skip if required_kernelcore is larger than totalpages
Message-ID<qjk8V-1uB-5@gated-at.bofh.it>
In reply to#1241928
On Thu, 8 Oct 2015, Xishi Qiu wrote:

> If kernelcore was not specified, or the kernelcore size is zero
> (required_movablecore >= totalpages), or the kernelcore size is larger
> than totalpages, there is no ZONE_MOVABLE. We should fill the zone
> with both kernel memory and movable memory.
> 
> Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>

Acked-by: David Rientjes <rientjes@google.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web