Re: [PATCH v5 4/4] x86/mm/KASLR: Adjust the padding size for the direct mapping.

From: Borislav Petkov
Date: Fri Dec 13 2019 - 11:38:27 EST

On Fri, Dec 13, 2019 at 10:54:48PM +0800, Baoquan He wrote:
> On 12/13/19 at 03:15pm, Borislav Petkov wrote:
> > On Fri, Dec 13, 2019 at 09:28:50PM +0800, Baoquan He wrote:
> > > In Documentation/x86/x86_64/mm.rst, the physical memory regions mapping
> > > with page_offset is called as the direct mapping of physical memory.
> >
> > The fact that it happens to compute the *first* region's size, which
> > *happens* to be the direct mapping of all physical memory is immaterial
> > here.
> >
> > It is actually causing more confusion in an already complex piece of
> > code. You can call this function just as well
> >
> > calc_region_size()
> >
> > which won't confuse readers. Because all you care about here is the
> > region's size - not which region it is.
> Won't calc_region_size be too generic? We also have vmalloc and vmemmap,
> and here we are specifically calculating the direct mapping of physical
> memory.

It sounds like you didn't read what I wrote above so read it again pls.

> If not knowing the max address to cover all the possible hotplugged
> memory, later memory hotplug will fail.

You don't have to state the obvious - I can see that in the code.

So let me ask you differently: can the parsing of the SRAT table happen
shortly before kernel_randomize_memory() *without* adding all that gunk
to the compressed stage, and without adding the boot_params member and
done only for memory hot_add machines?