* [PATCH] mm: skip if required_kernelcore is larger than totalpages @ 2015-10-08 2:21 Xishi Qiu 2015-10-09 15:41 ` Yasuaki Ishimatsu 2015-10-14 2:31 ` David Rientjes 0 siblings, 2 replies; 8+ messages in thread From: Xishi Qiu @ 2015-10-08 2:21 UTC (permalink / raw) To: Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, Tang Chen, zhongjiang Cc: Linux MM, LKML 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, 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 related [flat|nested] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-08 2:21 [PATCH] mm: skip if required_kernelcore is larger than totalpages Xishi Qiu @ 2015-10-09 15:41 ` Yasuaki Ishimatsu 2015-10-12 1:37 ` Xishi Qiu 2015-10-14 2:31 ` David Rientjes 1 sibling, 1 reply; 8+ messages in thread From: Yasuaki Ishimatsu @ 2015-10-09 15:41 UTC (permalink / raw) To: Xishi Qiu Cc: Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, Tang Chen, zhongjiang, Linux MM, LKML 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, 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] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-09 15:41 ` Yasuaki Ishimatsu @ 2015-10-12 1:37 ` Xishi Qiu 2015-10-14 2:50 ` Tang Chen 2015-10-16 16:58 ` Yasuaki Ishimatsu 0 siblings, 2 replies; 8+ messages in thread From: Xishi Qiu @ 2015-10-12 1:37 UTC (permalink / raw) To: Yasuaki Ishimatsu Cc: Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, Tang Chen, zhongjiang, Linux MM, LKML 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, 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] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-12 1:37 ` Xishi Qiu @ 2015-10-14 2:50 ` Tang Chen 2015-10-14 3:28 ` Xishi Qiu 2015-10-16 16:58 ` Yasuaki Ishimatsu 1 sibling, 1 reply; 8+ messages in thread From: Tang Chen @ 2015-10-14 2:50 UTC (permalink / raw) To: Xishi Qiu, Yasuaki Ishimatsu Cc: Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, zhongjiang, Linux MM, LKML 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, 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] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-14 2:50 ` Tang Chen @ 2015-10-14 3:28 ` Xishi Qiu 2015-10-14 4:03 ` Tang Chen 0 siblings, 1 reply; 8+ messages in thread From: Xishi Qiu @ 2015-10-14 3:28 UTC (permalink / raw) To: Tang Chen Cc: Yasuaki Ishimatsu, Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, zhongjiang, Linux MM, LKML 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, 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] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-14 3:28 ` Xishi Qiu @ 2015-10-14 4:03 ` Tang Chen 0 siblings, 0 replies; 8+ messages in thread From: Tang Chen @ 2015-10-14 4:03 UTC (permalink / raw) To: Xishi Qiu Cc: Yasuaki Ishimatsu, Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, zhongjiang, Linux MM, LKML, tangchen 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, 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] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-12 1:37 ` Xishi Qiu 2015-10-14 2:50 ` Tang Chen @ 2015-10-16 16:58 ` Yasuaki Ishimatsu 1 sibling, 0 replies; 8+ messages in thread From: Yasuaki Ishimatsu @ 2015-10-16 16:58 UTC (permalink / raw) To: Xishi Qiu Cc: Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, David Rientjes, Tang Chen, zhongjiang, Linux MM, LKML 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, 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] 8+ messages in thread
* Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages 2015-10-08 2:21 [PATCH] mm: skip if required_kernelcore is larger than totalpages Xishi Qiu 2015-10-09 15:41 ` Yasuaki Ishimatsu @ 2015-10-14 2:31 ` David Rientjes 1 sibling, 0 replies; 8+ messages in thread From: David Rientjes @ 2015-10-14 2:31 UTC (permalink / raw) To: Xishi Qiu Cc: Andrew Morton, Yasuaki Ishimatsu, Mel Gorman, Tang Chen, zhongjiang, Linux MM, LKML 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, 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] 8+ messages in thread
end of thread, other threads:[~2015-10-16 16:58 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-10-08 2:21 [PATCH] mm: skip if required_kernelcore is larger than totalpages Xishi Qiu 2015-10-09 15:41 ` Yasuaki Ishimatsu 2015-10-12 1:37 ` Xishi Qiu 2015-10-14 2:50 ` Tang Chen 2015-10-14 3:28 ` Xishi Qiu 2015-10-14 4:03 ` Tang Chen 2015-10-16 16:58 ` Yasuaki Ishimatsu 2015-10-14 2:31 ` David Rientjes
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).