From: <er...@he...> - 2003-10-22 05:01:30
|
On Tue, Oct 21, 2003 at 03:13:13PM -0400, Nicholas Henke wrote: > On Tue, 2003-10-21 at 11:54, er...@he... wrote: > > I got an oops out of the NMI watchdog which was enlightening (or at > > least indicated which code was at fault). The following patch may > > have fixed it for me. I say "may have" since I've had some trouble > > reproducing the problem reliably. > > > > This patch turns off "sigbypass" which is a little optimization where > > a process sending a signal to a ghost doesn't bother the ghost. > > Instead it just throws a signal forwarding message right on the > > message queue. I'm not sure how the code is broken. I haven't had > > time to look into it yet. > > > > Please give it a try and let me know if you still see the deadlock. > > > > > > --- hooks.c 29 Aug 2003 21:46:57 -0000 1.53 > > +++ hooks.c 21 Oct 2003 15:41:44 -0000 > > @@ -314,6 +314,11 @@ > > * t->sigmask */ > > struct bproc_krequest_t *req; > > struct siginfo tmpinfo; > > + > > + return 0; /* XXX disable sigbypass for now. > > + * There seems to be something busted or > > + * unsafe about this code... */ > > + > > if (!BPROC_ISGHOST(t) || !t->bproc.ghost->sigbypass) > > return 0; > > Well, that seems to have worked. I just passed 10M iterations, which it > was unable to do previously. I am now doing 100M just to be an idiot :) Ok, thanks for the feedback. Now to figure out what's wrong with that code... - Erik |