summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2006-11-26 07:54:44 +0000
committerkmacy <kmacy@FreeBSD.org>2006-11-26 07:54:44 +0000
commitad579686c6ceeacf7faf54a9eb0175b45589f0ad (patch)
tree01a075c7d27e188a96c84d41d1a40f89c8c732c7 /sys
parentb86e0fe725dd0b7da88d27072c63f6f6cf82c460 (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys')
-rw-r--r--sys/sun4v/sun4v/pmap.c29
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
*/
OpenPOWER on IntegriCloud