Re: [PATCH v9 0/5] x86/KASLR: Add parameter kaslr_boot_mem=nn[KMG]@ss[KMG]

From: Baoquan He
Date: Mon Mar 12 2018 - 06:10:41 EST


Hi Ingo,

On 03/12/18 at 10:35am, Ingo Molnar wrote:
>
> * Chao Fan <fanc.fnst@xxxxxxxxxxxxxx> wrote:
>
> > Long time no reply, rebase the patchset, change the parameter name
> > from 'kaslr_mem' to 'kaslr_boot_mem'. There's no more code change.
> >
> > ***Background:
> > People reported that kaslr may randomly chooses some positions
> > which are located in movable memory regions. This will break memory
> > hotplug feature.
>
> [...]
>
> > ***Solutions:
> > Introduce a new kernel parameter 'kaslr_boot_mem=nn@ss' to let users to
> > specify the memory regions where kernel can be allowed to randomize
> > safely.
>
> Manual solutions like that are pretty suboptimal to users, aren't they?
>
> In what way does memory hotplug feature 'break'? Does it crash or misbehave? Or
> simply does it not allow the movement of the affected memory region, while still
> allowing the rest to be moved?

AFAIT, if kernel is randomized into the movable memory region, the
affected memory region can not be hot added/removed since it has kernel
data. Surely, the system can still work, the unaffected part still can
be moved. Still it will cause regression on memory hotplug.

Mainly we parse SRAT table to get the ranges of memory provided by
hot-added memory devices in initmem_init(), that's very late. During boot,
we don't know it. Chao ever posted patches to grab SRAT at decompressing
stage, the code is very complicated and not elegant, ACPI maintainer
NACKed that.

Thanks
Baoquan