Sync the amd64 pmap with D51220. Primarily, avoid an unnecessary demotion.
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/amd64/amd64/pmap.c | ||
---|---|---|
7552 | I do not think so, pmap_alloc_pde() only returns non-NULL page table page for user mappings. |
sys/amd64/amd64/pmap.c | ||
---|---|---|
7552 | Yes, pgpg is NULL for the kernel address space. |
sys/amd64/amd64/pmap.c | ||
---|---|---|
7606 | In contrast to arm64, I am not clearing the PDE and issuing a TLB invalidation here for the kernel address space. The reason for that is derived from the following text from the AMD manual:
At this point either the invlpgs within pmap_remove_ptes() or the above |
sys/amd64/amd64/pmap.c | ||
---|---|---|
7606 | I believe this is the arch behavior, guaranteed on both intel and amd, that invalid ptes are never cached, and cause tlb flush for the address. |