Subject: CVS commit: [newlock2] src/sys/arch
To: None <source-changes@NetBSD.org>
From: Andrew Doran <ad@netbsd.org>
List: source-changes
Date: 01/27/2007 07:09:03
Module Name:	src
Committed By:	ad
Date:		Sat Jan 27 07:09:03 UTC 2007

Modified Files:
	src/sys/arch/amd64/amd64 [newlock2]: genassym.cf identcpu.c
	    lock_stubs.S locore.S spl.S
	src/sys/arch/amd64/include [newlock2]: asm.h cpu.h cpufunc.h
	src/sys/arch/i386/i386 [newlock2]: genassym.cf identcpu.c lock_stubs.S
	    spl.S
	src/sys/arch/i386/include [newlock2]: cpu.h cpufunc.h
	src/sys/arch/x86/conf [newlock2]: files.x86
	src/sys/arch/x86/include [newlock2]: intr.h
Added Files:
	src/sys/arch/x86/x86 [newlock2]: patch.c

Log Message:
If running on a PPro or later, at boot patch in versions of spllower() and
similar that use cmpxchg8b instead of cli/sti. Cuts the clock cycles for
splx() by a factor of ~6 on the P4, and ~3 on the PIII when bracketed by
serializing instructions (and hopefully more when not).


To generate a diff of this commit:
cvs rdiff -r1.5.14.6 -r1.5.14.7 src/sys/arch/amd64/amd64/genassym.cf
cvs rdiff -r1.6.4.2 -r1.6.4.3 src/sys/arch/amd64/amd64/identcpu.c
cvs rdiff -r1.1.2.10 -r1.1.2.11 src/sys/arch/amd64/amd64/lock_stubs.S
cvs rdiff -r1.18.8.7 -r1.18.8.8 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -r1.5.2.2 -r1.5.2.3 src/sys/arch/amd64/amd64/spl.S
cvs rdiff -r1.6.2.1 -r1.6.2.2 src/sys/arch/amd64/include/asm.h
cvs rdiff -r1.12.4.3 -r1.12.4.4 src/sys/arch/amd64/include/cpu.h
cvs rdiff -r1.9.2.2 -r1.9.2.3 src/sys/arch/amd64/include/cpufunc.h
cvs rdiff -r1.45.4.6 -r1.45.4.7 src/sys/arch/i386/i386/genassym.cf
cvs rdiff -r1.41.2.2 -r1.41.2.3 src/sys/arch/i386/i386/identcpu.c
cvs rdiff -r1.1.2.10 -r1.1.2.11 src/sys/arch/i386/i386/lock_stubs.S
cvs rdiff -r1.13.20.2 -r1.13.20.3 src/sys/arch/i386/i386/spl.S
cvs rdiff -r1.129.2.4 -r1.129.2.5 src/sys/arch/i386/include/cpu.h
cvs rdiff -r1.33.2.2 -r1.33.2.3 src/sys/arch/i386/include/cpufunc.h
cvs rdiff -r1.19.4.2 -r1.19.4.3 src/sys/arch/x86/conf/files.x86
cvs rdiff -r1.21.4.1 -r1.21.4.2 src/sys/arch/x86/include/intr.h
cvs rdiff -r0 -r1.1.2.1 src/sys/arch/x86/x86/patch.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.