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