Subject: CVS commit: [vmlocking] src/sys
To: None <source-changes@NetBSD.org>
From: Andrew Doran <ad@netbsd.org>
List: source-changes
Date: 08/26/2007 12:04:48
Module Name: src
Committed By: ad
Date: Sun Aug 26 12:04:48 UTC 2007
Modified Files:
src/sys/conf [vmlocking]: files
src/sys/kern [vmlocking]: kern_cpu.c sched_4bsd.c
src/sys/sys [vmlocking]: cpu_data.h sched.h
Added Files:
src/sys/kern [vmlocking]: subr_xcall.c
src/sys/sys [vmlocking]: xcall.h
Log Message:
- Add a generic cross-call facility. Right now this only does threaded cross
calls but that should be extended to do IPIs. These are deliberately set
up as bound kthreads (and not soft interrupts or something else) so that
the called functions can use the spl framework or disable preemption in
order to guarantee exclusive access to CPU-local data.
- Use cross calls to take CPUs online or offline. Ok to do since bound LWPs
still execute on offline CPUs. As a result schedstate_percpu's::spc_flags
is CPU-local again and doesn't need locking.
To generate a diff of this commit:
cvs rdiff -r1.834.2.6 -r1.834.2.7 src/sys/conf/files
cvs rdiff -r1.2.2.4 -r1.2.2.5 src/sys/kern/kern_cpu.c
cvs rdiff -r1.1.6.7 -r1.1.6.8 src/sys/kern/sched_4bsd.c
cvs rdiff -r0 -r1.1.2.1 src/sys/kern/subr_xcall.c
cvs rdiff -r1.7.6.5 -r1.7.6.6 src/sys/sys/cpu_data.h
cvs rdiff -r1.33.2.6 -r1.33.2.7 src/sys/sys/sched.h
cvs rdiff -r0 -r1.1.2.1 src/sys/sys/xcall.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.