they were only used by pmap_qenter and pmap_qremove - in pmap_copy don't copy wired bit to destination pmap - mpte was unused in pmap_enter_object - remove - pmap_enter_quick_locked is not called on the kernel_pmap, remove check - move pmap_remove_write specific logic out of tte_clear_phys_bit - in pmap_protect check for removal of execute bit - panic in the presence of a wired page in pmap_remove_all - pmap_zero_range can call hwblkclr if offset is zero and size is PAGE_SIZE - tte_clear_virt_bit is only used by pmap_change_wiring - thus it can be greatly simplified - pmap_invalidate_page need only be called in tte_clear_phys_bit if there is a match with flags - lock the pmap in tte_clear_phys_bit so that clearing the page bits is atomic with invalidating the page - these changes result in 100s reduction in buildworld from a malloc backed disk to a malloc backed disk - ~2.5% Revision Changes Path 1.30 +64 -104 src/sys/sun4v/sun4v/pmap.c 1.3 +14 -29 src/sys/sun4v/sun4v/tte.c