diff options
author | kmacy <kmacy@FreeBSD.org> | 2006-11-26 07:54:44 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2006-11-26 07:54:44 +0000 |
commit | ad579686c6ceeacf7faf54a9eb0175b45589f0ad (patch) | |
tree | 01a075c7d27e188a96c84d41d1a40f89c8c732c7 | |
parent | b86e0fe725dd0b7da88d27072c63f6f6cf82c460 (diff) | |
download | FreeBSD-src-ad579686c6ceeacf7faf54a9eb0175b45589f0ad.zip FreeBSD-src-ad579686c6ceeacf7faf54a9eb0175b45589f0ad.tar.gz |
- remove dead code
- revert a previous change to pmap_enter where we
could skip invalidates on unmanaged pages
-rw-r--r-- | sys/sun4v/sun4v/pmap.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/sys/sun4v/sun4v/pmap.c b/sys/sun4v/sun4v/pmap.c index b1115a8..0546988 100644 --- a/sys/sun4v/sun4v/pmap.c +++ b/sys/sun4v/sun4v/pmap.c @@ -1031,40 +1031,31 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, tte_data |= VTD_WIRED; if (pmap == kernel_pmap) tte_data |= TTE_KERNEL_MINFLAGS; - - - tte_hash_insert(pmap->pm_hash, va, tte_data|TTE_MINFLAGS|VTD_REF); - tsb_set_tte(&pmap->pm_tsb, va, tte_data|TTE_MINFLAGS|VTD_REF, pmap->pm_context); invlva = FALSE; if ((otte_data & ~(VTD_W|VTD_REF)) != tte_data) { - if (otte_data & VTD_MANAGED) { + if (otte_data & VTD_V) { if (otte_data & VTD_REF) { - vm_page_flag_set(om, PG_REFERENCED); + if (otte_data & VTD_MANAGED) + vm_page_flag_set(om, PG_REFERENCED); if (opa != pa) invlva = TRUE; } if (otte_data & VTD_W) { - vm_page_dirty(om); -#if 0 - if ((prot & VM_PROT_WRITE) == 0) /* XXX double check */ -#endif + if (otte_data & VTD_MANAGED) + vm_page_dirty(om); + if ((prot & VM_PROT_WRITE) == 0) invlva = TRUE; } } } + tte_hash_insert(pmap->pm_hash, va, tte_data|TTE_MINFLAGS|VTD_REF); + tsb_set_tte(&pmap->pm_tsb, va, tte_data|TTE_MINFLAGS|VTD_REF, pmap->pm_context); + if (tte_hash_needs_resize(pmap->pm_hash)) pmap_tte_hash_resize(pmap); -#ifdef notyet - if ((PCPU_GET(curpmap) != kernel_pmap) && (curthread->td_proc->p_numthreads == 1) - && (pmap->pm_tsb_cap_miss_count > pmap->pm_tsb_miss_count >> 2)) { - int size = tsb_size(&pmap->pm_tsb); - pmap->pm_tsb_ra = tsb_init(&pmap->pm_tsb, &pmap->pm_tsbscratch, size << 1); - pmap->pm_tsb_miss_count = 0; - pmap->pm_tsb_cap_miss_count = 0; - } -#endif + /* * 512 is an arbitrary number of tsb misses */ |