Subject: Re: mutex fault
To: Andrew Doran <ad@NetBSD.org>
From: Manuel Bouyer <email@example.com>
Date: 12/09/2007 11:24:59
On Sat, Dec 08, 2007 at 11:45:24PM +0000, Andrew Doran wrote:
> > OK, it looks like it's because it can call softint_schedule() even if
> > ci_ilevel is >= IPL_HIGH. I'll try to come up with a solution based on
> > atomic ops only.
> Ah, I forgot to reply - sorry. softint_schedule() is fine from any IPL and
> at any point in the kernel.
I guess by "any IPL" you mean "at or below IPL_HIGH". The way the xenevt
driver works means it interrupts above any IPL (only cli() can block its
interrutps, really). Looking at softint_schedule(), I suspect this can corrupt
the si_q queue, at last. I can't see how it can cause the lwp_lock/unlock
Manuel Bouyer <firstname.lastname@example.org>
NetBSD: 26 ans d'experience feront toujours la difference