DragonFly commits List (threaded) for 2005-07
cvs commit: src/sys/i386/isa apic_vector.s src/sys/kern lwkt_thread.c src/sys/sys thread.h
dillon 2005/07/20 13:21:31 PDT
DragonFly src repository
When a cpu is stopped due to a panic or the debugger, it can be in virtually
any state, including possibly holding a critical section. IPIQ interrupts
must still be processed while we are in this state (even though we could be
racing IPIQ processing if we were interrupted at just the wrong time). In
particular, dumping is not likely to work if a panic occurs on a cpu != 0
unless we process the IPIQ on the stopped cpus. There are simply too many
interactions between cpus.
Interrupt threads are LWKT scheduled entities and will generally still not
work during a panic while dumping. The dumping code expects this. However,
call splz() anyway.
We may in the future have to allow certain threads to run while dumping.
For example, to allow dumping over the network. There are various ways this
can be done, such as by masking gd_runqmask or flagging special threads to
be runnable while in a paniced or dumping state.
Revision Changes Path
1.20 +10 -0 src/sys/i386/isa/apic_vector.s
1.80 +24 -0 src/sys/kern/lwkt_thread.c
1.66 +1 -0 src/sys/sys/thread.h