From: Jonathan Gray Subject: remove i386 pmap_zero_page_uncached() To: tech@openbsd.org Date: Fri, 8 Nov 2024 11:34:17 +1100 used by idle page zeroing code removed from uvm in 2015 diff --git sys/arch/i386/i386/pmap.c sys/arch/i386/i386/pmap.c index 240e8dbb054..1edd1b35072 100644 --- sys/arch/i386/i386/pmap.c +++ sys/arch/i386/i386/pmap.c @@ -1611,32 +1611,6 @@ pmap_zero_phys_86(paddr_t pa) *zpte = 0; } -/* - * pmap_zero_page_uncached: the same, except uncached. - */ - -int -pmap_zero_page_uncached_86(paddr_t pa) -{ -#ifdef MULTIPROCESSOR - int id = cpu_number(); -#endif - pt_entry_t *zpte = PTESLEW(zero_pte, id); - caddr_t zerova = VASLEW(pmap_zerop, id); - -#ifdef DIAGNOSTIC - if (*zpte) - panic("pmap_zero_page_uncached_86: lock botch"); -#endif - - *zpte = (pa & PG_FRAME) | PG_V | PG_RW | PG_N; /* map in */ - pmap_update_pg((vaddr_t)zerova); /* flush TLB */ - pagezero(zerova, PAGE_SIZE); /* zero */ - *zpte = 0; - - return 1; -} - /* * pmap_flush_cache: flush the cache for a virtual address. */ @@ -2882,7 +2856,5 @@ void (*pmap_write_protect_p)(struct pmap *, vaddr_t, vaddr_t, vm_prot_t) = pmap_write_protect_86; void (*pmap_pinit_pd_p)(pmap_t) = pmap_pinit_pd_86; void (*pmap_zero_phys_p)(paddr_t) = pmap_zero_phys_86; -int (*pmap_zero_page_uncached_p)(paddr_t) = - pmap_zero_page_uncached_86; void (*pmap_copy_page_p)(struct vm_page *, struct vm_page *) = pmap_copy_page_86; diff --git sys/arch/i386/i386/pmapae.c sys/arch/i386/i386/pmapae.c index b7be0b44e73..c8931e23554 100644 --- sys/arch/i386/i386/pmapae.c +++ sys/arch/i386/i386/pmapae.c @@ -811,7 +811,6 @@ pmap_bootstrap_pae(void) pmap_write_protect_p = pmap_write_protect_pae; pmap_pinit_pd_p = pmap_pinit_pd_pae; pmap_zero_phys_p = pmap_zero_phys_pae; - pmap_zero_page_uncached_p = pmap_zero_page_uncached_pae; pmap_copy_page_p = pmap_copy_page_pae; bzero((void *)kpm->pm_pdir + 8, (PDSLOT_PTE-1) * 8); @@ -1094,32 +1093,6 @@ pmap_zero_phys_pae(paddr_t pa) *zpte = 0; } -/* - * pmap_zero_page_uncached: the same, except uncached. - */ - -int -pmap_zero_page_uncached_pae(paddr_t pa) -{ -#ifdef MULTIPROCESSOR - int id = cpu_number(); -#endif - pt_entry_t *zpte = PTESLEW(zero_pte, id); - caddr_t zerova = VASLEW(pmap_zerop, id); - -#ifdef DIAGNOSTIC - if (*zpte) - panic("pmap_zero_page_uncached_pae: lock botch"); -#endif - - *zpte = (pa & PG_FRAME) | PG_V | PG_RW | PG_N; /* map in */ - pmap_update_pg((vaddr_t)zerova); /* flush TLB */ - pagezero(zerova, PAGE_SIZE); /* zero */ - *zpte = 0; - - return 1; -} - /* * pmap_copy_page: copy a page */ diff --git sys/arch/i386/include/pmap.h sys/arch/i386/include/pmap.h index 2ead66ef937..605d6531017 100644 --- sys/arch/i386/include/pmap.h +++ sys/arch/i386/include/pmap.h @@ -276,7 +276,6 @@ extern void (*pmap_unwire_p)(struct pmap *, vaddr_t); extern void (*pmap_write_protect_p)(struct pmap*, vaddr_t, vaddr_t, vm_prot_t); extern void (*pmap_pinit_pd_p)(pmap_t); extern void (*pmap_zero_phys_p)(paddr_t); -extern int (*pmap_zero_page_uncached_p)(paddr_t); extern void (*pmap_copy_page_p)(struct vm_page *, struct vm_page *); u_int32_t pmap_pte_set_pae(vaddr_t, paddr_t, u_int32_t); @@ -295,7 +294,6 @@ void pmap_unwire_pae(struct pmap *, vaddr_t); void pmap_write_protect_pae(struct pmap *, vaddr_t, vaddr_t, vm_prot_t); void pmap_pinit_pd_pae(pmap_t); void pmap_zero_phys_pae(paddr_t); -int pmap_zero_page_uncached_pae(paddr_t); void pmap_copy_page_pae(struct vm_page *, struct vm_page *); #define pmap_pte_set (*pmap_pte_set_p) @@ -310,7 +308,6 @@ void pmap_copy_page_pae(struct vm_page *, struct vm_page *); #define pmap_write_protect (*pmap_write_protect_p) #define pmap_pinit_pd (*pmap_pinit_pd_p) #define pmap_zero_phys (*pmap_zero_phys_p) -#define pmap_zero_page_uncached (*pmap_zero_page_uncached_p) #define pmap_copy_page (*pmap_copy_page_p) u_int32_t pmap_pte_set_86(vaddr_t, paddr_t, u_int32_t); @@ -329,7 +326,6 @@ void pmap_unwire_86(struct pmap *, vaddr_t); void pmap_write_protect_86(struct pmap *, vaddr_t, vaddr_t, vm_prot_t); void pmap_pinit_pd_86(pmap_t); void pmap_zero_phys_86(paddr_t); -int pmap_zero_page_uncached_86(paddr_t); void pmap_copy_page_86(struct vm_page *, struct vm_page *); void pmap_tlb_shootpage(struct pmap *, vaddr_t); void pmap_tlb_shootrange(struct pmap *, vaddr_t, vaddr_t); @@ -362,11 +358,6 @@ void pmap_flush_page_pae(paddr_t); #define PMAP_GROWKERNEL /* turn on pmap_growkernel interface */ -/* - * Do idle page zero'ing uncached to avoid polluting the cache. - */ -#define PMAP_PAGEIDLEZERO(pg) pmap_zero_page_uncached(VM_PAGE_TO_PHYS(pg)) - /* * Inline functions */