Module Name: src Committed By: mrg Date: Sun Mar 28 05:24:01 UTC 2010
Modified Files: src/sys/arch/sparc64/include: cpu.h src/sys/arch/sparc64/sparc64: cache.h ipifuncs.c pmap.c Log Message: - add a kmutex_t ci_ctx_lock to struct cpu_info, and initialise it in cpu_pmap_init() and replace pmap_ctx_lock usage with this new ci_ctx_lock - replace smp_dcache_flush_page_all() with smp_dcache_flush_page_cpuset(), that flushes only on the set of CPUs not, everyone. add new dcache_flush_page_cpuset() to flush this page from the D$ only on the specified set of CPUs. - add a cpuset to pmap_free_page() and use it when freeing PTE pages when a pmap is destroyed - introduce pmap_free_page_noflush(), and use it when we allocated a page for PTEs but didn't use it and don't need to flush it - don't bother with pmap_lock in pmap_extract(), the only potential issue is pseg_get() which is already safe tested on sb2000, sb2500 and ultra80 with a bunch of various heavy workloads, and seems to give a clear 1-2% speed up for high-forking / short lived processes, such as ./configure. To generate a diff of this commit: cvs rdiff -u -r1.89 -r1.90 src/sys/arch/sparc64/include/cpu.h cvs rdiff -u -r1.17 -r1.18 src/sys/arch/sparc64/sparc64/cache.h cvs rdiff -u -r1.35 -r1.36 src/sys/arch/sparc64/sparc64/ipifuncs.c cvs rdiff -u -r1.261 -r1.262 src/sys/arch/sparc64/sparc64/pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.