Subject: CVS commit: [nathanw_sa] src/sys
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 01/08/2003 00:12:48
Module Name:	src
Committed By:	thorpej
Date:		Tue Jan  7 22:12:48 UTC 2003

Modified Files:
	src/sys/arch/alpha/alpha [nathanw_sa]: trap.c
	src/sys/arch/arm/arm [nathanw_sa]: ast.c undefined.c
	src/sys/arch/arm/fpe-arm [nathanw_sa]: armfpe_init.c
	src/sys/arch/atari/atari [nathanw_sa]: trap.c
	src/sys/arch/cesfic/cesfic [nathanw_sa]: trap.c
	src/sys/arch/hp300/hp300 [nathanw_sa]: trap.c
	src/sys/arch/i386/i386 [nathanw_sa]: trap.c
	src/sys/arch/luna68k/luna68k [nathanw_sa]: trap.c
	src/sys/arch/mac68k/mac68k [nathanw_sa]: trap.c
	src/sys/arch/mips/mips [nathanw_sa]: trap.c
	src/sys/arch/mvme68k/mvme68k [nathanw_sa]: trap.c
	src/sys/arch/news68k/news68k [nathanw_sa]: trap.c
	src/sys/arch/next68k/next68k [nathanw_sa]: trap.c
	src/sys/arch/powerpc/ibm4xx [nathanw_sa]: trap.c
	src/sys/arch/powerpc/powerpc [nathanw_sa]: trap.c
	src/sys/arch/sh3/sh3 [nathanw_sa]: exception.c
	src/sys/arch/sparc/sparc [nathanw_sa]: trap.c
	src/sys/arch/sparc64/sparc64 [nathanw_sa]: trap.c
	src/sys/arch/sun2/sun2 [nathanw_sa]: trap.c
	src/sys/arch/sun3/sun3 [nathanw_sa]: trap.c
	src/sys/arch/vax/vax [nathanw_sa]: trap.c
	src/sys/arch/x68k/x68k [nathanw_sa]: trap.c
	src/sys/kern [nathanw_sa]: kern_ktrace.c kern_subr.c kern_synch.c
	src/sys/miscfs/genfs [nathanw_sa]: genfs_vnops.c
	src/sys/sys [nathanw_sa]: lwp.h
	src/sys/uvm [nathanw_sa]: uvm_amap.c

Log Message:
In the SA universe, the switch-to-this-LWP decision is made at a
different level than where preempt() calls are made, which renders
the "newlwp" argument useless.  Replace it with a "more work to do"
boolean argument.  Returning to userspace preempt() calls pass 0.
"Voluntary" preemptions in e.g. uiomove() pass 1.  This will be used
to indicate to the SA subsystem that the LWP is not yet finished in
the kernel.

Collapse the SA vs. non-SA cases of preempt() together, making the
conditional code block much smaller, and don't call sa_preempt() if
more work is to come.

NOTE: THIS IS NOT A COMPLETE FIX TO THE preempt()-in-uiomove() PROBLEM
THAT CURRENTLY EXISTS FOR SA PROCESSES.


To generate a diff of this commit:
cvs rdiff -r1.77.2.6 -r1.77.2.7 src/sys/arch/alpha/alpha/trap.c
cvs rdiff -r1.2.2.7 -r1.2.2.8 src/sys/arch/arm/arm/ast.c
cvs rdiff -r1.9.4.10 -r1.9.4.11 src/sys/arch/arm/arm/undefined.c
cvs rdiff -r1.5.2.1 -r1.5.2.2 src/sys/arch/arm/fpe-arm/armfpe_init.c
cvs rdiff -r1.62.4.7 -r1.62.4.8 src/sys/arch/atari/atari/trap.c
cvs rdiff -r1.5.4.8 -r1.5.4.9 src/sys/arch/cesfic/cesfic/trap.c
cvs rdiff -r1.91.4.10 -r1.91.4.11 src/sys/arch/hp300/hp300/trap.c
cvs rdiff -r1.154.2.20 -r1.154.2.21 src/sys/arch/i386/i386/trap.c
cvs rdiff -r1.18.4.7 -r1.18.4.8 src/sys/arch/luna68k/luna68k/trap.c
cvs rdiff -r1.96.4.10 -r1.96.4.11 src/sys/arch/mac68k/mac68k/trap.c
cvs rdiff -r1.165.2.21 -r1.165.2.22 src/sys/arch/mips/mips/trap.c
cvs rdiff -r1.61.4.8 -r1.61.4.9 src/sys/arch/mvme68k/mvme68k/trap.c
cvs rdiff -r1.19.4.9 -r1.19.4.10 src/sys/arch/news68k/news68k/trap.c
cvs rdiff -r1.35.4.9 -r1.35.4.10 src/sys/arch/next68k/next68k/trap.c
cvs rdiff -r1.2.6.13 -r1.2.6.14 src/sys/arch/powerpc/ibm4xx/trap.c
cvs rdiff -r1.53.4.17 -r1.53.4.18 src/sys/arch/powerpc/powerpc/trap.c
cvs rdiff -r1.2.4.4 -r1.2.4.5 src/sys/arch/sh3/sh3/exception.c
cvs rdiff -r1.106.8.23 -r1.106.8.24 src/sys/arch/sparc/sparc/trap.c
cvs rdiff -r1.74.4.20 -r1.74.4.21 src/sys/arch/sparc64/sparc64/trap.c
cvs rdiff -r1.4.6.10 -r1.4.6.11 src/sys/arch/sun2/sun2/trap.c
cvs rdiff -r1.103.6.9 -r1.103.6.10 src/sys/arch/sun3/sun3/trap.c
cvs rdiff -r1.66.8.12 -r1.66.8.13 src/sys/arch/vax/vax/trap.c
cvs rdiff -r1.55.4.10 -r1.55.4.11 src/sys/arch/x68k/x68k/trap.c
cvs rdiff -r1.53.2.11 -r1.53.2.12 src/sys/kern/kern_ktrace.c
cvs rdiff -r1.75.2.20 -r1.75.2.21 src/sys/kern/kern_subr.c
cvs rdiff -r1.101.2.30 -r1.101.2.31 src/sys/kern/kern_synch.c
cvs rdiff -r1.31.2.21 -r1.31.2.22 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -r1.1.2.23 -r1.1.2.24 src/sys/sys/lwp.h
cvs rdiff -r1.30.2.13 -r1.30.2.14 src/sys/uvm/uvm_amap.c

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