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.