Re: [PATCH] sparse: Track the boundaries of memory sections for accurate checks

From: Raslan, KarimAllah
Date: Wed Sep 14 2016 - 18:11:13 EST

Ahmed, Karim Allah

> On Sep 15, 2016, at 12:05 AM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> On Wed, Sep 14, 2016 at 2:40 PM, Raslan, KarimAllah <karahmed@xxxxxxxxx> wrote:
>> On 6/20/16, 10:23 AM, "Michal Hocko" <mhocko@xxxxxxxxxx> wrote:
>> On Sat 18-06-16 12:11:19, KarimAllah Ahmed wrote:
>>> When sparse memory model is used an array of memory sections is created to
>>> track each block of contiguous physical pages. Each element of this array
>>> contains PAGES_PER_SECTION pages. During the creation of this array the actual
>>> boundaries of the memory block is lost, so the whole block is either considered
>>> as present or not.
>>> pfn_valid() in the sparse memory configuration checks which memory sections the
>>> pfn belongs to then checks whether it's present or not. This yields sub-optimal
>>> results when the available memory doesn't cover the whole memory section,
>>> because pfn_valid will return 'true' even for the unavailable pfns at the
>>> boundaries of the memory section.
>> Please be more verbose of _why_ the patch is needed. Why those
>> "sub-optimal results" matter?
>> Does this make sense to you ?
> [ channeling my inner akpm ]
> What's the user visible effect of this change? What code is getting
> tripped up by pfn_valid() being imprecise, and why is changing
> pfn_valid() the preferred fix?

I did expand the commit message in v2 of this patch to answer these questions:

Amazon Development Center Germany GmbH
Berlin - Dresden - Aachen
main office: Krausenstr. 38, 10117 Berlin
Geschaeftsfuehrer: Dr. Ralf Herbrich, Christian Schlaeger
Ust-ID: DE289237879
Eingetragen am Amtsgericht Charlottenburg HRB 149173 B