Subject: CVS commit: src/sys/arch
To: None <>
From: Andrew Doran <>
List: source-changes
Date: 11/10/2007 20:06:25
Module Name:	src
Committed By:	ad
Date:		Sat Nov 10 20:06:25 UTC 2007

Modified Files:
	src/sys/arch/amd64/amd64: identcpu.c lock_stubs.S spl.S
	src/sys/arch/i386/i386: identcpu.c lock_stubs.S locore.S
	    machdep.c spl.S vm_machdep.c
	src/sys/arch/i386/include: proc.h segments.h
	src/sys/arch/x86/include: sysarch.h
	src/sys/arch/x86/x86: cpu.c patch.c pmap.c sys_machdep.c

Log Message:
- When computing the TSC frequency, call i8254_delay() and not DELAY().
- Use atomics to adjust the pmap reference count, instead of taking locks.
- Implement I386_{SET,GET}_{FS,GS}BASE, allowing %fs and %gs to be used
  as per-thread registers. This is compatible with FreeBSD.
- Run patches after we have attached CPUs, since we then know if the
  system is uniprocessor or not. Eliminates a lot of #ifdef MULTIPROCESSOR
  and makes running MP kernels on UP systems cheaper.
- Patch out many of the 'lock' prefixes to nops if uniprocessor.
- Do a wbinvd after patching to ensure that the trace/instruction cache
  is up to date.

To generate a diff of this commit:
cvs rdiff -r1.27 -r1.28 src/sys/arch/amd64/amd64/identcpu.c
cvs rdiff -r1.6 -r1.7 src/sys/arch/amd64/amd64/lock_stubs.S
cvs rdiff -r1.10 -r1.11 src/sys/arch/amd64/amd64/spl.S
cvs rdiff -r1.54 -r1.55 src/sys/arch/i386/i386/
cvs rdiff -r1.78 -r1.79 src/sys/arch/i386/i386/identcpu.c
cvs rdiff -r1.6 -r1.7 src/sys/arch/i386/i386/lock_stubs.S
cvs rdiff -r1.53 -r1.54 src/sys/arch/i386/i386/locore.S
cvs rdiff -r1.611 -r1.612 src/sys/arch/i386/i386/machdep.c
cvs rdiff -r1.19 -r1.20 src/sys/arch/i386/i386/spl.S
cvs rdiff -r1.133 -r1.134 src/sys/arch/i386/i386/vm_machdep.c
cvs rdiff -r1.31 -r1.32 src/sys/arch/i386/include/proc.h
cvs rdiff -r1.43 -r1.44 src/sys/arch/i386/include/segments.h
cvs rdiff -r1.5 -r1.6 src/sys/arch/x86/include/sysarch.h
cvs rdiff -r1.4 -r1.5 src/sys/arch/x86/x86/cpu.c \
cvs rdiff -r1.5 -r1.6 src/sys/arch/x86/x86/patch.c
cvs rdiff -r1.3 -r1.4 src/sys/arch/x86/x86/pmap.c

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