thread stage 8: add crit_enter(), per-thread cpl handling, fix deferred
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 21 Jun 2003 07:54:57 +0000 (07:54 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 21 Jun 2003 07:54:57 +0000 (07:54 +0000)
commitf1d1c3fa08a3331e9dff64598cff0e77351d0887
tree11ce757faf9f5a1de63e9be87ffb72875c84d2e3
parent8ad65e0803427ec97e56c2df25dc31460e526df5
thread stage 8: add crit_enter(), per-thread cpl handling, fix deferred
interrupt handling for critical sections, add some basic passive token code,
and blocking/signaling code.   Add structural definitions for additional
LWKT mechanisms.

Remove asleep/await.  Add generation number based xsleep/xwakeup.

Note that when exiting the last crit_exit() we run splz() to catch up
on blocked interrupts.  There is also some #if 0'd code that will cause
a thread switch to occur 'at odd times'... primarily wakeup()->
lwkt_schedule()->critical_section->switch.  This will be usefulf or testing
purposes down the line.

The passive token code is mostly disabled at the moment.  It's primary use
will be under SMP and its primary advantage is very low overhead on UP and,
if used properly, should also have good characteristics under SMP.
54 files changed:
sys/conf/files
sys/i386/apic/apic_ipl.s
sys/i386/apic/apic_vector.s
sys/i386/i386/genassym.c
sys/i386/i386/globals.s
sys/i386/i386/machdep.c
sys/i386/i386/mp_machdep.c
sys/i386/i386/pmap.c
sys/i386/i386/swtch.s
sys/i386/i386/trap.c
sys/i386/icu/icu_ipl.s
sys/i386/icu/icu_vector.s
sys/i386/include/asnames.h
sys/i386/include/globaldata.h
sys/i386/include/thread.h [new file with mode: 0644]
sys/i386/isa/apic_ipl.s
sys/i386/isa/apic_vector.s
sys/i386/isa/icu_ipl.s
sys/i386/isa/icu_vector.s
sys/i386/isa/ipl_funcs.c
sys/kern/init_main.c
sys/kern/kern_malloc.c
sys/kern/kern_synch.c
sys/kern/lwkt_thread.c
sys/platform/pc32/apic/apic_ipl.s
sys/platform/pc32/apic/apic_vector.s
sys/platform/pc32/i386/genassym.c
sys/platform/pc32/i386/globals.s
sys/platform/pc32/i386/machdep.c
sys/platform/pc32/i386/mp_machdep.c
sys/platform/pc32/i386/pmap.c
sys/platform/pc32/i386/swtch.s
sys/platform/pc32/i386/trap.c
sys/platform/pc32/icu/icu_ipl.s
sys/platform/pc32/icu/icu_vector.s
sys/platform/pc32/include/asnames.h
sys/platform/pc32/include/globaldata.h
sys/platform/pc32/include/thread.h [new file with mode: 0644]
sys/platform/pc32/isa/apic_ipl.s
sys/platform/pc32/isa/apic_vector.s
sys/platform/pc32/isa/icu_ipl.s
sys/platform/pc32/isa/icu_vector.s
sys/platform/pc32/isa/ipl_funcs.c
sys/platform/vkernel/i386/genassym.c
sys/sys/malloc.h
sys/sys/proc.h
sys/sys/systm.h
sys/sys/thread.h
sys/sys/thread2.h [new file with mode: 0644]
sys/sys/xwait.h [new file with mode: 0644]
sys/vm/vm_kern.c
sys/vm/vm_page.c
sys/vm/vm_page.h
sys/vm/vm_pageout.h