On Tue, Jan 3, 2017 at 12:31 AM, Baoquan He <b...@redhat.com> wrote: > Hi Dan, > > On 11/22/16 at 09:26am, Dan Williams wrote: >> [ replying for Dave since he's offline today and tomorrow ] >> >> On Tue, Nov 22, 2016 at 12:47 AM, Ingo Molnar <mi...@kernel.org> wrote: >> > >> > * Dave Jiang <dave.ji...@intel.com> wrote: >> > >> >> CONFIG_RANDOMIZE_BASE relocates the kernel to a random base address. >> >> However it does not take into account the memmap= parameter passed in from >> >> the kernel commandline. >> > >> > memmap= parameters are often used as a list. >> > >> >> [...] This results in the kernel sometimes being put in the middle of the >> >> user >> >> memmap. [...] >> > >> > What does this mean? If memmap= is used to re-define the memory map then >> > the >> > kernel getting in the middle of a RAM area is what we want, isn't it? What >> > we >> > don't want is for the kernel to get into reserved areas, right? >> >> Right, this is about teaching kaslr to not land the kernel in newly >> defined reserved regions that were not marked reserved in the initial >> e820 map from platform firmware. > > If only tell kaslr to not land kernel in newly defined reserved regions, > memory added by "memmap=nn[KMG]@ss[KMG]" should not be avoided since > it's usable memory. Kernel randomized into this region is also what we > want. Not sure if I understand it right.
You're right, this is supposed to be for memmap=nn!ss cases which defines reserved persistent memory ranges, not memmap=nn@ss which defines usable memory. We need to fix mem_avoid_memmap() to only skip memmap= statements that specify reserved memory.