Misc interrupts/LWKT 1/2: interlock the idle thread. Put execution of
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Jun 2003 07:37:07 +0000 (07:37 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 29 Jun 2003 07:37:07 +0000 (07:37 +0000)
commit4b5f931b8d939e30650d43b16ca2a573d58c19e9
tree70abf552376e6bdd001fa78d47a95f646ae4936c
parent5f2e2a8bc1cc3be9c34e0d3a4564b554864d73ab
Misc interrupts/LWKT 1/2: interlock the idle thread.  Put execution of
fast interrupts inside a critical section.  Make the hardclock and statclock
INTR_FAST.  Implement the strict priority queue mechanism for LWKTs.
Implement prioritized preemption for interrupt and softint preemption.
Keep better stats.

Note: this commit hacks up the userland scheduler, in particular the
notion of 'curproc' because threaded interrupts really mess up the userland
scheduler's idea of curproc, which it uses to assume that the process is not
on a run queue even though it is runnable.  The next step will be to
separate out and cleanup the userland scheduler.
17 files changed:
sys/i386/i386/machdep.c
sys/i386/icu/icu_vector.s
sys/i386/isa/clock.c
sys/i386/isa/icu_vector.s
sys/kern/kern_clock.c
sys/kern/kern_intr.c
sys/kern/kern_synch.c
sys/kern/kern_timeout.c
sys/kern/lwkt_thread.c
sys/platform/pc32/i386/machdep.c
sys/platform/pc32/icu/icu_vector.s
sys/platform/pc32/isa/clock.c
sys/platform/pc32/isa/icu_vector.s
sys/sys/globaldata.h
sys/sys/interrupt.h
sys/sys/thread.h
sys/sys/thread2.h