| 3025 | } |
| 3026 | |
| 3027 | void |
| 3028 | pmap_invalidate_page(pmap_t pmap, vm_offset_t va) |
| 3029 | { |
| 3030 | if (pmap_type_guest(pmap)) { |
| 3031 | pmap_invalidate_ept(pmap); |
| 3032 | return; |
| 3033 | } |
| 3034 | |
| 3035 | KASSERT(pmap->pm_type == PT_X86, |
| 3036 | ("pmap_invalidate_page: invalid type %d", pmap->pm_type)); |
| 3037 | |
| 3038 | pmap_invalidate_preipi(pmap); |
| 3039 | smp_masked_invlpg(pmap_invalidate_cpu_mask(pmap), va, pmap, |
| 3040 | pmap_invalidate_page_curcpu_cb); |
| 3041 | } |
| 3042 | |
| 3043 | /* 4k PTEs -- Chosen to exceed the total size of Broadwell L2 TLB */ |
| 3044 | #define PMAP_INVLPG_THRESHOLD (4 * 1024 * PAGE_SIZE) |
no test coverage detected