tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

> My guess is the problem was a missing splx() in an error-handling
> case.  

That's what I'd also had assumed if the reason was
"not lowered in syscall exit". But this was on entry...

Looking at the kernel msgbuf in the crashdump I found
however that there were indeed a number of "not lowered
on syscall exit" and "not lowered on trap exit" messages,
just these don't trap into DDB.
So I've added a DDB trap to the syscall exit check and
triggered the problem again.
What I'm seeing now is

(gdb) print cpu_info_primary.ci_next->ci_istate
$15 = {ipending = 0x40000000, ilevel = 0x7}

This makes me think that the softintr() code
is to blame.
I din't completely understand how this is supposed to
work, but it could be a wrong error message as well:
the softintr() code doesn't even try to save and
restore its ilevel. So it appearently relies on the
syscall code to clean up? Can somone explain?

I can send the crashdump file if someone wants to

best regards

Forschungszentrum Juelich GmbH
52425 Juelich

Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr. Harald Bolt,
Dr. Sebastian M. Schmidt

Home | Main Index | Thread Index | Old Index