PERFORCE change 97651 for review
Kip Macy
kmacy at FreeBSD.org
Tue May 23 00:28:32 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=97651
Change 97651 by kmacy at kmacy_storage:sun4v_work on 2006/05/23 00:27:32
disable shootdown optimization until invalidation bug is fixed
Affected files ...
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#55 edit
Differences ...
==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#55 (text+ko) ====
@@ -163,19 +163,9 @@
((pm) != kernel_pmap && (pm)->pm_stats.resident_count == 0)
/*
- * The threshold (in bytes) above which tsb_foreach() is used in pmap_remove()
- * and pmap_protect() instead of trying each virtual address.
- */
-#define PMAP_TSB_THRESH ((TSB_SIZE / 2) * PAGE_SIZE)
-
-#define PANIC_IF(exp) if (unlikely(exp)) {panic("%s: %s:%d", #exp, __FILE__, __LINE__);}
-
-/*
* Kernel MMU interface
*/
-#define UNIMPLEMENTED panic("%s not implemented", __FUNCTION__)
-#define IMPLEMENTME printf("don't forget %s not implemented\n", __FUNCTION__)
#ifdef PMAP_DEBUG
#define KDPRINTF if (pmap_debug) printf
#define DPRINTF \
@@ -1177,21 +1167,22 @@
cpumask, (1 << curcpu));
#endif
-
+#if 0
if ((active_total = (pmap->pm_tlbactive & ~cpumask)) == 0)
goto done;
if (pmap->pm_context != 0)
active_total = active = (pmap->pm_tlbactive & ~cpumask);
else
+#endif
active_total = active = PCPU_GET(other_cpus);
if (active_total == 0)
goto done;
retry:
- for (cpu_count = 0, i = 0, cpus = active; i < 32 && cpus; i++, cpus >>= 1) {
- if (!(cpus & 0x1))
+ for (cpu_count = 0, i = 0, cpus = active; i < 32 && cpus; i++, cpus = (cpus>>1)) {
+ if ((cpus & 0x1) == 0)
continue;
cpulist[cpu_count] = (uint16_t)i;
@@ -1350,12 +1341,6 @@
tte_hash_delete(kernel_pmap->pm_hash, va);
}
-static void
-pmap_lazyfix(pmap_t pmap)
-{
- UNIMPLEMENTED;
-}
-
/*
* Map a range of physical addresses into kernel virtual address space.
*
@@ -1525,10 +1510,10 @@
}
}
- sched_unpin();
if (anychanged)
pmap_invalidate_range(pmap, sva, eva, TRUE);
+ sched_unpin();
vm_page_unlock_queues();
PMAP_UNLOCK(pmap);
}
@@ -1589,7 +1574,6 @@
("pmap_release: pmap resident count %ld != 0",
pmap->pm_stats.resident_count));
- pmap_lazyfix(pmap);
tsb_deinit(&pmap->pm_tsb);
tte_hash_destroy(pmap->pm_hash);
free_context(pmap->pm_context);
More information about the p4-projects
mailing list