Re: more system hang debugging
[email protected] (Emmanuel Dreyfus) Mon, 1 Apr 2002 15:07:57 +0200
| Newsgroups | gmane.os.netbsd.ports.mips |
|---|---|
| Message-ID | <1f9yuhr.klmlys9lxdq7M@[10.0.12.137]> |
> I guess something starts wrong when exception path re-enters kernel upon
> ast() condition meets prior to user return. This seems to relate with one
> which you mentioned previously.
I added even more debug printf's. There is an ast(), but I don't
understand how this is able to drive us into trap() again.
Here is the precise code path:
mips3_UserGenException
trap
uvm_fault
uvmfault_lookup
trapsignal
psignal1
ast
preempt
mi_switch
...
On each time we go through ast, we go into preempt() and mi_switch(),
but the offending process is always scheduled again, even if there are
other processes that should be run.
This explains the hang, but I still fail to understand why are we
looping on this fault forever.
In the meantime, I was able to reproduce the bug with a native program
of a few lines. It's mips specific (at least macppc is not affected).
More to come in a PR :o)
--
Emmanuel Dreyfus.
Avec Windows 3.1 ils etaient au bord du gouffre...
Avec Windows 95 ils ont fait un grand bon en avant.
[email protected]