From d3ef1ba20f7b6e1af5387c48d58da38cc55d3b79 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 15 Feb 2023 10:20:45 +0100 Subject: pmap: Do not TLB shootdown IPI for mapwindow updates These are used only temporarily by the current processor only, so we don't need to notify other processors about them. We however then should flush TLB at allocation, to make sure we don't have some remnant. --- i386/intel/pmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c index 0387fa8d..3b52deb3 100644 --- a/i386/intel/pmap.c +++ b/i386/intel/pmap.c @@ -1022,6 +1022,7 @@ pmap_mapwindow_t *pmap_get_mapwindow(pt_entry_t entry) WRITE_PTE(map->entry, entry); #endif /* MACH_PV_PAGETABLES */ simple_unlock(&pmapwindows_lock); + INVALIDATE_TLB(kernel_pmap, map->vaddr, map->vaddr + PAGE_SIZE); return map; } @@ -1038,7 +1039,7 @@ void pmap_put_mapwindow(pmap_mapwindow_t *map) WRITE_PTE(map->entry, 0); #endif /* MACH_PV_PAGETABLES */ simple_unlock(&pmapwindows_lock); - PMAP_UPDATE_TLBS(kernel_pmap, map->vaddr, map->vaddr + PAGE_SIZE); + INVALIDATE_TLB(kernel_pmap, map->vaddr, map->vaddr + PAGE_SIZE); } void pmap_virtual_space( -- cgit v1.2.3