Re: [PATCH] mm: skip if required_kernelcore is larger than totalpages
From: Yasuaki Ishimatsu
Date: Fri Oct 16 2015 - 12:58:09 EST
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@xxxxxxxxxx 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/