blob: 133561b9cb0c32f03f840af433bdd4976f68a3c0 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001
2<previous description obsolete, deleted>
3
4Virtual memory map with 4 level page tables:
5
60000000000000000 - 00007fffffffffff (=47bits) user space, different per mm
7hole caused by [48:63] sign extension
8ffff800000000000 - ffff80ffffffffff (=40bits) guard hole
Andi Kleen8315eca2005-11-05 17:25:54 +01009ffff810000000000 - ffffc0ffffffffff (=46bits) direct mapping of all phys. memory
Linus Torvalds1da177e2005-04-16 15:20:36 -070010ffffc10000000000 - ffffc1ffffffffff (=40bits) hole
11ffffc20000000000 - ffffe1ffffffffff (=45bits) vmalloc/ioremap space
12... unused hole ...
13ffffffff80000000 - ffffffff82800000 (=40MB) kernel text mapping, from phys 0
14... unused hole ...
15ffffffff88000000 - fffffffffff00000 (=1919MB) module mapping space
16
Andi Kleen8315eca2005-11-05 17:25:54 +010017The direct mapping covers all memory in the system upto the highest
18memory address (this means in some cases it can also include PCI memory
19holes)
20
Linus Torvalds1da177e2005-04-16 15:20:36 -070021vmalloc space is lazily synchronized into the different PML4 pages of
22the processes using the page fault handler, with init_level4_pgt as
23reference.
24
25Current X86-64 implementations only support 40 bit of address space,
26but we support upto 46bits. This expands into MBZ space in the page tables.
27
28-Andi Kleen, Jul 2004