On Mon, 12 Oct 2015 09:37:17 +0800
Xishi Qiu <qiuxi...@huawei.com> wrote:

> On 2015/10/9 23:41, Yasuaki Ishimatsu wrote:
> 
> > 
> > On Thu, 8 Oct 2015 10:21:05 +0800
> > Xishi Qiu <qiuxi...@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.yasu...@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 <qiuxi...@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 majord...@kvack.org.  For more info on Linux MM,
> >> see: http://www.linux-mm.org/ .
> >> Don't email: <a href=mailto:"d...@kvack.org";> em...@kvack.org </a>
> > 
> > .
> > 
> 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to