Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Apr 2001 02:22:57 -0700
From:      Alfred Perlstein <bright@wintelcom.net>
To:        Greg Lehey <grog@lemis.com>
Cc:        Andrew Gordon <arg@arg1.demon.co.uk>, freebsd-stable@FreeBSD.ORG
Subject:   Re: 4.3-RC processes stuck sleeping on "inode" (?vinum) problem update
Message-ID:  <20010402022257.N813@fw.wintelcom.net>
In-Reply-To: <20010402021449.M813@fw.wintelcom.net>; from bright@wintelcom.net on Mon, Apr 02, 2001 at 02:14:49AM -0700
References:  <Pine.BSF.4.21.0104020008080.9790-100000@server.arg.sj.co.uk> <20010402094208.D73090@wantadilla.lemis.com> <20010402182909.A75576@wantadilla.lemis.com> <20010402021449.M813@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
* Alfred Perlstein <bright@wintelcom.net> [010402 02:15] wrote:
> 
> As far as a fix, a couple of suggestions:
> 
> 1) I think unlockrange might require an splbio to protect the
>    lock-> data as well as the plex-> data.

One thing you might want to do is sprinkle the code with some splasserts()
to make sure they're being called correctly.  Since lockrange uses
splbio, but unlockrange doesn't seem to, it would seem to be an
error if unlockrange() is called without splbio.

> 2) I think you may want to be using wakeup, not wakeup_one(),
>    although doing that may really be obscuring the problem rather
>    than solving it.

Along with this, what may be useful for debugging is checking the
return value from tsleep with a timeout when the timeout expires,
then dump some info about the current lock state, perhaps take
a snapshot right before sleeping and then display the difference
when you timeout and wake up.

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
Daemon News Magazine in your snail-mail! http://magazine.daemonnews.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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