Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Oct 2004 16:41:16 -0400
From:      Stephan Uphoff <ups@tree.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        "freebsd-arch@freebsd.org" <freebsd-arch@FreeBSD.org>
Subject:   Re: scheduler (sched_4bsd) questions
Message-ID:  <1097008876.50232.476.camel@palm.tree.com>
In-Reply-To: <200410051000.15379.jhb@FreeBSD.org>
References:  <1095468747.31297.241.camel@palm.tree.com> <20041004184939.GA8178@peter.osted.lan> <1096945958.46385.44.camel@palm.tree.com> <200410051000.15379.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1097008876.50232.476.camel>