Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys/arch/sparc64
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.
Home |
Main Index |
Thread Index |
Old Index