In file src/sys/arch/amd64/include/pmap.h:
* The x86_64 pmap module closely resembles the i386 one. It uses
* the same recursive entry scheme, and the same alternate area
* trick for accessing non-current pmaps. See the i386 pmap.h
* for a description. The obvious difference is that 3 extra
* levels of page table need to be dealt with. The level 1 page
* table pages are at:
*
* l1: 0x00007f8000000000 - 0x00007fffffffffff (39 bits, needs PML4
entry)
*
* The alternate space is at:
*
* l1: 0xffffff8000000000 - 0xffffffffffffffff (39 bits, needs PML4
entry)
*
* The rest is kept as physical pages in 3 UVM objects, and is
* temporarily mapped for virtual access when needed.
Which one level 1 ptp do we keep at the recursive area? Does OpenBSD
keep the last used level 1 ptp cached at that area? Please clarify.
Thanks,
Constantine