On 10/26/18 at 03:28pm, Kirill A. Shutemov wrote: > On 5-level paging LDT remap area is placed in the middle of > KASLR randomization region and it can overlap with direct mapping, > vmalloc or vmap area. ~~~ We usually call it vmemmap. > > Let's move LDT just before direct mapping which makes it safe for KASLR. > This also allows us to unify layout between 4- and 5-level paging. ... > diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt > index 702898633b00..75bff98928a8 100644 > --- a/Documentation/x86/x86_64/mm.txt > +++ b/Documentation/x86/x86_64/mm.txt > @@ -34,23 +34,24 @@ __________________|____________|__________________|_________|___________________ > ____________________________________________________________|___________________________________________________________ > | | | | > ffff800000000000 | -128 TB | ffff87ffffffffff | 8 TB | ... guard hole, also reserved for hypervisor > - ffff880000000000 | -120 TB | ffffc7ffffffffff | 64 TB | direct mapping of all physical memory (page_offset_base) > - ffffc80000000000 | -56 TB | ffffc8ffffffffff | 1 TB | ... unused hole > + ffff880000000000 | -120 TB | ffff887fffffffff | 0.5 TB | LDT remap for PTI > + ffff888000000000 | -119.5 TB | ffffc87fffffffff | 64 TB | direct mapping of all physical memory (page_offset_base) > + ffffc88000000000 | -55.5 TB | ffffc8ffffffffff | 0.5 TB | ... unused hole Hi Kirill, Thanks for this fix. One small concern is whether we can put LDT remap in other place, e.g shrink KASAN area and save one pgd size for it, Just from Redhat's enterprise relase point of view, we don't enable CONFIG_KASAN, and LDT is rarely used for server, now cutting one block from the direct mapping area and moving it up one pgd slot seems a little too abrupt. Does KASAN really cost 16 TB in 4-level and 8 PB in 5-level? After all the direct mapping is the core mapping and has been there always, LDT remap is kind of not so core and important mapping. Just a very perceptual feeling. Other than this, this patch looks good to me. Thanks Baoquan