Possible fix for KSE threads that never wake up
Damian Gerow
dgerow at afflictions.org
Tue Oct 12 19:53:48 PDT 2004
Thus spake John Baldwin (jhb at 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).
More information about the freebsd-current
mailing list