Re: [PATCH 4/6] x86, mm: make split_mem_range() more easy to read

From: Thomas Gleixner
Date: Thu Mar 28 2019 - 04:08:48 EST


On Thu, 28 Mar 2019, Wei Yang wrote:
> On Sun, Mar 24, 2019 at 03:29:04PM +0100, Thomas Gleixner wrote:
> My question is to the for loop.
>
> For example, we have a range
>
> +--+---------+-----------------------+
> ^ 128M 1G 2G
> 128M - 4K
>
> If my understanding is correct, the original behavior will split this into
> three ranges:
>
> 4K size: [128M - 4K, 128M]
> 2M size: [128M, 1G]
> 1G size: [1G, 2G]
>
> While after your change, it will split this into two ranges:
>
> ?? size: [128M - 4K, 1G]
> 2M size: [1G, 2G]
>
> The question mark here is because you leave the page_size_mask unchanged in
> this case.
>
> Is my understanding correct? Or I missed something?

Yes. You misread mr_try_map().

Thanks,

tglx