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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 12 Oct 2015 09:37:17 +0800
Xishi Qiu <qiuxishi@xxxxxxxxxx> wrote:

> On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:
> 
> > 
> > On Thu, 8 Oct 2015 10:21:05 +0800
> > Xishi Qiu <qiuxishi@xxxxxxxxxx> 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@xxxxxxxxxxxxxx>

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@xxxxxxxxxx>
> >> ---
> >>  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@xxxxxxxxx.  For more info on Linux MM,
> >> see: http://www.linux-mm.org/ .
> >> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>
> > 
> > .
> > 
> 
> 
> 

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



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]