Re: [PATCH] sparse: Track the boundaries of memory sections for accurate checks
From: Dan Williams
Date: Wed Sep 14 2016 - 18:05:59 EST
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?