amd64 pmap: make large map sizing depend on kva_layout instead of pml4 indexes amd64 pmap: for LA57 move large map out of kernel pml4 slot and allow it to consume up to 32 pml5 slots (32 x 2048 TB), same as DMAP. amd64 vmparam.h: update KVA map Also designate the start address of the kernel pml4 entry. amd64 sysctl vm.pmap.kernel_maps: do not desinformate for la57 case For !la57, direct map, large map, and recursive mapping are not in top pml4 region. Bigger change would be adding the dump of whole pml5 KVA mappings.
Details
Details
- Reviewers
alc markj - Commits
- rG5f33006f8742: amd64 sysctl vm.pmap.kernel_maps: do not desinformate for la57 case
rG059d0584d382: amd64 vmparam.h: update KVA map
rG31afa16f92df: amd64 pmap: for LA57 move large map out of kernel pml4 slot
rGcf07a18b58cf: amd64 pmap: make large map sizing depend on kva_layout instead of pml4 indexes
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
sys/amd64/amd64/pmap.c | ||
---|---|---|
2612 | I think this can be conditional on !la57. |
sys/amd64/amd64/pmap.c | ||
---|---|---|
2612 | Right now yes, but eventually this should be fixed (as a next step of the KVA changes). |
sys/amd64/amd64/pmap.c | ||
---|---|---|
10783–10784 | Don't these assertions require some modification for la57? |
Comment Actions
Update KASSERTs in pmap_large_map_pdpe() as much as it is useful.
Disable some printings in sysctl_kmaps() for la57 mode.
sys/amd64/amd64/pmap.c | ||
---|---|---|
10784 | The #ifdef seems redundant. The compiler will recognize that the if (!la57) is empty, and not generate any code. |
Comment Actions
Fix indexes for pml5 LMAP creation loop.
Split pmap_large_map_pdpe() into la57/la58 pathes.
sys/amd64/amd64/pmap.c | ||
---|---|---|
10780 | pml4? |