Subject: CVS commit: [nathanw_sa] syssrc/sys/kern
To: None <source-changes@netbsd.org>
From: Nathan J Williams <nathanw@netbsd.org>
List: source-changes
Date: 08/31/2002 03:05:24
Module Name:	syssrc
Committed By:	nathanw
Date:		Sat Aug 31 00:05:24 UTC 2002

Modified Files:
	syssrc/sys/kern [nathanw_sa]: kern_sa.c

Log Message:
Whole bunch of changes:

Take a flag parameter in sys_sa_register(); use it to control whether
or not to generate upcalls on return from preempt().

Reserve stacks at sa_switch() time for the UNBLOCKED upcall, so that
upcalls are always generated in pairs. This requires a slight
adjustment of the sa_upcall/sa_upcall0 calling conventions.

Split out the guts of sys_sa_yield() into sa_yield() for internal
use.

Use the sa_woken information stored by wakeup() to optimize the case
where one LWP yields just after another has been woken.

Rearrange the sa_switch() code path to separately account for whether
or not we want to deliver an upcall, go idle, or switch back to the
previous LWP.


To generate a diff of this commit:
cvs rdiff -r1.1.2.30 -r1.1.2.31 syssrc/sys/kern/kern_sa.c

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