I've had another look at the kernel_sp for the irq threads after I hit "irq still active" (/linux22/arch/l4-i386/kernel/irq.c:1058).
The active threads are:
(thread_t *) 0xc0000000 (thread_t *) 0xc014a800 (thread_t *) 0xc014f000
The latter two correspond to tcb 5 0x15 and tcb 5 0x1e, irqs 5 and 14, which are NE2000 and ide0.
I rather suspect that I have been barking up the wrong tree by looking at where kernel_sp points at. Although it looks like an execution stack, with a trail of frame pointers and program addresses adjacent to them, I can't get gdb to interpret it for me, and, suspiciously, the values of kernel_sp are equally spaced between the threads, as if all the alleged stacks are exactly the same size, which suggests that they don't have any interesting information for me.
tcb 5 0x15 kernel_sp = 0xc014aee4 tcb 5 0x1e kernel_sp = 0xc014f6e4 etc
Any other debugging suggestions?
Also, has anyone other than me experienced the "irq still active" problem? I have seen mention of a PIC bug in certain Intel 486s; it would be nice to know for certain that this problem isn't specific to just my hardware ...
Edmund
l4-hackers@os.inf.tu-dresden.de