scheduler (sched_4bsd) questions

Stephan Uphoff ups at tree.com
Tue Oct 5 13:41:26 PDT 2004


On Tue, 2004-10-05 at 10:00, John Baldwin wrote:
> On Monday 04 October 2004 11:12 pm, Stephan Uphoff wrote:
> > On Mon, 2004-10-04 at 14:49, Peter Holm wrote:
> > > On Mon, Oct 04, 2004 at 01:34:38PM -0400, Stephan Uphoff wrote:
> >
> > ---- snip ----
> >
> > > > - but my time budget is limited and Peter has an interesting bug left
> > > > that has priority.
> > >
> > > I'm not closer to being able to create this panic in a controlled way.
> > > After a whole day of different tests I finally got this panic:
> > > http://www.holm.cc/stress/log/cons81.html. The trigger seems to be one
> > > particular Java applet, but it is not easily reproduceable.
> > >
> > > - Peter
> >
> > ---- snip ----
> >
> > I found a race condition in sleepq_catch_signals / sleepq_resume_thread
> > that may cause sleepq_resume_thread to add a thread to the run queue
> > that is already there.
> 
> Note that setrunnable() checks the thread state and doesn't call setrunqueue 
> if the thread is already on the runqueue (see the TDS_RUNQ case in the switch 
> statement).  Is this what you are referring to?

Yes - but I misread the TD_CLR_SLEEPING(td) macro and missed that it
only makes the thread runable if the bit had been inhibited before. :-(

Thanks

	Stephan



More information about the freebsd-arch mailing list