Subject: CVS commit: [yamt-idlelwp] src/sys
To: None <source-changes@NetBSD.org>
From: Andrew Doran <ad@netbsd.org>
List: source-changes
Date: 03/21/2007 22:04:18
Module Name:	src
Committed By:	ad
Date:		Wed Mar 21 22:04:18 UTC 2007

Modified Files:
	src/sys/kern [yamt-idlelwp]: kern_sleepq.c kern_synch.c
	src/sys/sys [yamt-idlelwp]: lwp.h

Log Message:
Previously cpu_info::ci_curlwp was protected by the sched_mutex and this is
used in a few places to synchronise. Now the state of LWPs is protected
during switch by their current lock (which might be e.g. a sleep queue
lock). So ci_curlwp is unlocked, which is necessary to be able to do
preemption and to run interrupts as LWPs cheaply.

Add a (locked) flag to the lwp (LW_RUNNING) that indicates if it is on CPU
somewhere. More exactly, it means that the LWP's state is tied to a CPU, and
that the LWP has not yet switched away even if (l->l_cpu->ci_curcpu != l) or
(l->l_stat != LSONPROC).


To generate a diff of this commit:
cvs rdiff -r1.4.2.6 -r1.4.2.7 src/sys/kern/kern_sleepq.c
cvs rdiff -r1.177.2.16 -r1.177.2.17 src/sys/kern/kern_synch.c
cvs rdiff -r1.48.2.6 -r1.48.2.7 src/sys/sys/lwp.h

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