mm.txt 1.8 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5

<previous description obsolete, deleted>

Virtual memory map with 4 level page tables:

6
0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm
L
Linus Torvalds 已提交
7
hole caused by [48:63] sign extension
8
ffff800000000000 - ffff87ffffffffff (=43 bits) guard hole, reserved for hypervisor
9
ffff880000000000 - ffffc7ffffffffff (=64 TB) direct mapping of all phys. memory
10 11 12 13
ffffc80000000000 - ffffc8ffffffffff (=40 bits) hole
ffffc90000000000 - ffffe8ffffffffff (=45 bits) vmalloc/ioremap space
ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole
ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB)
A
Andrey Ryabinin 已提交
14 15
... unused hole ...
ffffec0000000000 - fffffc0000000000 (=44 bits) kasan shadow memory (16TB)
L
Linus Torvalds 已提交
16
... unused hole ...
17 18
ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks
... unused hole ...
19 20
ffffffef00000000 - ffffffff00000000 (=64 GB) EFI region mapping space
... unused hole ...
J
Jiri Slaby 已提交
21
ffffffff80000000 - ffffffffa0000000 (=512 MB)  kernel text mapping, from phys 0
22
ffffffffa0000000 - ffffffffff5fffff (=1526 MB) module mapping space
23 24
ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls
ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole
L
Linus Torvalds 已提交
25

26
The direct mapping covers all memory in the system up to the highest
27
memory address (this means in some cases it can also include PCI memory
28
holes).
29

L
Linus Torvalds 已提交
30 31 32 33
vmalloc space is lazily synchronized into the different PML4 pages of
the processes using the page fault handler, with init_level4_pgt as
reference.

34 35
Current X86-64 implementations support up to 46 bits of address space (64 TB),
which is our current limit. This expands into MBZ space in the page tables.
L
Linus Torvalds 已提交
36

37 38 39 40
We map EFI runtime services in the 'efi_pgd' PGD in a 64Gb large virtual
memory window (this size is arbitrary, it can be raised later if needed).
The mappings are not part of any other kernel PGD and are only available
during EFI runtime calls.
41

L
Linus Torvalds 已提交
42
-Andi Kleen, Jul 2004