DragonFly bugs List (threaded) for 2004-01
Re: SiS 645DX problems
"Matthew Dillon" <dillon@xxxxxxxxxxxxxxxxxxxx> wrote:
> :"Jeroen" <koffieyahoo@xxxxxxxxxxx> wrote:
> spl0() will basically reenable interrupts. Any pending interrupts are
> processed. If the machine hangs there then it is likely an interrupt
> service routine that is responsibe.
> Can you ctl-alt-esc into ddb when it hangs?
No. In a number of attempts I only managed to get in ddb once, but then I
was already past the point where it normally hangs.
Let me give a short description of what I tried up until now. First three
1. it always hangs at exactly the same point (apparently the spl0 call in
the configure function in i386/i386/autoconf.c)
2. the code base I use was checkout Monday morning (UTC +1)
3. I almost use the generic config file, except that I disabled "cpu
Basically what I did was adding printf to the code and see what happens.
This directly brings me to the first problem: how accurate, i.e. quick
enough, is printf? Adding a printf to spl0 its multi-character output was
sometimes not complete when the system hanged.
Under the assumption the printf is reasonably accurate in continued and
found that there are always three interrupts pending: 1, 5, 10. That is,
irq 1: keyboard
irq 5: firewire, usb
irq 10: usb, nic, number of devices for which no device drivers are
At this point I removed the nic device driver from the kernel which made no
difference.Then, I removed in turn the firewire and the usb from the kernel
which seemed to make it boot perfectly (I didn't try this long enough to be
100% sure of this).
Last thing I can say is that when I add some printf's before the spl0 call
and in the sched_ithd function in kern/kern_intr.c the system does not hang.
So, any suggestions how I can proceed further?