Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Oct 2004 22:53:40 -0400
From:      Damian Gerow <dgerow@afflictions.org>
To:        current@FreeBSD.org
Subject:   Re: Possible fix for KSE threads that never wake up
Message-ID:  <20041013025340.GA30381@afflictions.org>
In-Reply-To: <200410121556.51976.jhb@FreeBSD.org>
References:  <200410121556.51976.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake John Baldwin (jhb@FreeBSD.org) [12/10/04 15:59]:
: Currently the KSE code arbitrarily sets the SLEEPING inhibitor on any thread 
: it suspends that is on the sleep queue.  Threads that are on the sleep queue 
: however are not always asleep and it adds needless complication and 
: opportunity for bugs (if the inhibitor is not otherwise cleared the thread 
: may never get to run again).  Since the suspension code uses its own 
: inhibitor the hack isn't even needed.  This patch just turns it off.  Let me 
: know if this fixes any problems people are seeing:

Nope.  But it did turn up something strange.  I booted into a kernel sup'ed
about two hours ago, tested it against firefox, it hung, so I applied the
patch, recompiled, installed, and rebooted.  When I tested /that/ time
around, I successfully ran a few dig's (which I didn't test before), then I
ran firefox, then poof! dig stopped working for me.

I can also say that once I have one (or more) hung program(s), my system will
eventually dissolve into a state of complete unusability -- random processes
will just start to hang.  There doesn't seem to be a pattern to this -- it
once took weeks, it once took days, it once took hours.  Earlier tonight
(after my first test against firefox alone), it took seconds.

I am trying to rebuild firefox, just for kicks.  We'll see if that has any
effect.

Unfortunately, I can't offer any more than this (like debugging output and
such).



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