Date: Thu, 01 Mar 2001 23:50:16 -0500 From: Jake Burkholder <jburkholder0829@home.com> To: Kris Kennaway <kris@obsecurity.org> Cc: current@FreeBSD.ORG Subject: Re: Scheduler panic Message-ID: <20010302045017.23221BACC@cr66388-a.rchrd1.on.wave.home.com> In-Reply-To: Message from Jake Burkholder <jburkholder0829@home.com> of "Thu, 01 Mar 2001 21:35:47 EST." <20010302023548.4F733BACC@cr66388-a.rchrd1.on.wave.home.com>
next in thread | previous in thread | raw e-mail | index | archive | help
replying to myself again.... > > This is the best workaround I can think of: > > Index: kern/kern_intr.c > =================================================================== > RCS file: /home/ncvs/src/sys/kern/kern_intr.c,v > retrieving revision 1.47 > diff -u -r1.47 kern_intr.c > --- kern/kern_intr.c 2001/02/28 02:53:43 1.47 > +++ kern/kern_intr.c 2001/03/02 02:28:08 > @@ -366,7 +366,7 @@ > */ > ithread->it_need = 1; > mtx_lock_spin(&sched_lock); > - if (p->p_stat == SWAIT) { > + if (p->p_stat == SWAIT && curproc->p_stat == SRUN) { > CTR1(KTR_INTR, __func__ ": setrunqueue %d", p->p_pid); > p->p_stat = SRUN; > setrunqueue(p); Heh. Sorry this is wrong, the test for SRUN should be in the same if statement as the do_switch, one further in. This will completetly miss interrupts if the race is ever hit... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010302045017.23221BACC>