1 2Virtual memory map with 4 level page tables: 3 40000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm 5hole caused by [47:63] sign extension 6ffff800000000000 - ffff87ffffffffff (=43 bits) guard hole, reserved for hypervisor 7ffff880000000000 - ffff887fffffffff (=39 bits) LDT remap for PTI 8ffff888000000000 - ffffc87fffffffff (=64 TB) direct mapping of all phys. memory 9ffffc88000000000 - ffffc8ffffffffff (=39 bits) hole 10ffffc90000000000 - ffffe8ffffffffff (=45 bits) vmalloc/ioremap space 11ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole 12ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB) 13... unused hole ... 14ffffec0000000000 - fffffbffffffffff (=44 bits) kasan shadow memory (16TB) 15... unused hole ... 16 vaddr_end for KASLR 17fffffe0000000000 - fffffe7fffffffff (=39 bits) cpu_entry_area mapping 18fffffe8000000000 - fffffeffffffffff (=39 bits) LDT remap for PTI 19ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks 20... unused hole ... 21ffffffef00000000 - fffffffeffffffff (=64 GB) EFI region mapping space 22... unused hole ... 23ffffffff80000000 - ffffffff9fffffff (=512 MB) kernel text mapping, from phys 0 24ffffffffa0000000 - fffffffffeffffff (1520 MB) module mapping space 25[fixmap start] - ffffffffff5fffff kernel-internal fixmap range 26ffffffffff600000 - ffffffffff600fff (=4 kB) legacy vsyscall ABI 27ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole 28 29Virtual memory map with 5 level page tables: 30 310000000000000000 - 00ffffffffffffff (=56 bits) user space, different per mm 32hole caused by [56:63] sign extension 33ff00000000000000 - ff0fffffffffffff (=52 bits) guard hole, reserved for hypervisor 34ff10000000000000 - ff10ffffffffffff (=48 bits) LDT remap for PTI 35ff11000000000000 - ff90ffffffffffff (=55 bits) direct mapping of all phys. memory 36ff91000000000000 - ff9fffffffffffff (=3840 TB) hole 37ffa0000000000000 - ffd1ffffffffffff (=54 bits) vmalloc/ioremap space (12800 TB) 38ffd2000000000000 - ffd3ffffffffffff (=49 bits) hole 39ffd4000000000000 - ffd5ffffffffffff (=49 bits) virtual memory map (512TB) 40... unused hole ... 41ffdf000000000000 - fffffc0000000000 (=53 bits) kasan shadow memory (8PB) 42... unused hole ... 43 vaddr_end for KASLR 44fffffe0000000000 - fffffe7fffffffff (=39 bits) cpu_entry_area mapping 45... unused hole ... 46ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks 47... unused hole ... 48ffffffef00000000 - fffffffeffffffff (=64 GB) EFI region mapping space 49... unused hole ... 50ffffffff80000000 - ffffffff9fffffff (=512 MB) kernel text mapping, from phys 0 51ffffffffa0000000 - fffffffffeffffff (1520 MB) module mapping space 52[fixmap start] - ffffffffff5fffff kernel-internal fixmap range 53ffffffffff600000 - ffffffffff600fff (=4 kB) legacy vsyscall ABI 54ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole 55 56Architecture defines a 64-bit virtual address. Implementations can support 57less. Currently supported are 48- and 57-bit virtual addresses. Bits 63 58through to the most-significant implemented bit are sign extended. 59This causes hole between user space and kernel addresses if you interpret them 60as unsigned. 61 62The direct mapping covers all memory in the system up to the highest 63memory address (this means in some cases it can also include PCI memory 64holes). 65 66vmalloc space is lazily synchronized into the different PML4/PML5 pages of 67the processes using the page fault handler, with init_top_pgt as 68reference. 69 70We map EFI runtime services in the 'efi_pgd' PGD in a 64Gb large virtual 71memory window (this size is arbitrary, it can be raised later if needed). 72The mappings are not part of any other kernel PGD and are only available 73during EFI runtime calls. 74 75Note that if CONFIG_RANDOMIZE_MEMORY is enabled, the direct mapping of all 76physical memory, vmalloc/ioremap space and virtual memory map are randomized. 77Their order is preserved but their base will be offset early at boot time. 78 79Be very careful vs. KASLR when changing anything here. The KASLR address 80range must not overlap with anything except the KASAN shadow area, which is 81correct as KASAN disables KASLR. 82