amd64 pmap: only link as many DMAP pml4 page tables as was allocated amd64 K*SAN: add kva_layout members for K*SAN maps The members are added regardless of the kernel config. amd64 pmap: add kva_layout.kva_max And use it instead of manually providing the same value as sentinel in code for sysctl vm.pmap.kernel_maps. amd64 sysctl_kmaps_check(): add pml5e arg For now all callers pass zero. amd64 vm.pmap.kernel_maps: provide canonical address switch for la57 amd64 sysctl vm.pmap.kernel_maps: rework Iterate over the KVA instead of the pml4 indexes. Otherwise, we would need to iterate of pml5 indexes for LA57 and then either use secondary loop for pml4 entries, or use flat indexes for pml4. It is simpler to have unified loop for both paging modes. Instead of checking pml4 indexes for start of interesting kernel maps, use kva_layout. Again, this makes the printing of heralds independent of the paging mode. Restart the loop iteration when changing address due to canonicalization. This is needed to not miss printing the map herald line.
Details
Details
- Reviewers
alc markj - Commits
- rGaa78ed925839: amd64 sysctl vm.pmap.kernel_maps: rework
rGf6ec18e200ab: amd64 vm.pmap.kernel_maps: provide canonical address switch for la57
rG58832abd24f0: amd64 sysctl_kmaps_check(): add pml5e arg
rG76a8b948fee3: amd64 pmap: add kva_layout.kva_max
rG28d43983f64d: amd64 K*SAN: add kva_layout members for K*SAN maps
rG4a473db9f97b: amd64 pmap: only link as many DMAP pml4 page tables as was allocated
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/amd64/amd64/pmap.c | ||
---|---|---|
11982 | Undefined behavior. Without the intialization, la48 pmap would read uninitialized pml5e to pass its value to sysctl_kmaps_check(). |