Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jan 2008 16:07:14 +0100
From:      "Attilio Rao" <attilio@freebsd.org>
To:        "Yar Tikhiy" <yar@comp.chem.msu.su>
Cc:        Kostik Belousov <kostikbel@gmail.com>, Doug Barton <dougb@freebsd.org>, freebsd-current@freebsd.org
Subject:   Re: panic: System call lstat returning with 1 locks held
Message-ID:  <3bbf2fe10801300707u3fd121c0k199605c2f0be6cbf@mail.gmail.com>
In-Reply-To: <20080130130820.GA88429@comp.chem.msu.su>
References:  <3bbf2fe10801250000k5852c2f2j5d1897c900096818@mail.gmail.com> <479B6303.6000401@FreeBSD.org> <3bbf2fe10801260918k56c1a73hf28ff154eca0b74c@mail.gmail.com> <479BBDAA.6000008@FreeBSD.org> <3bbf2fe10801261657x7d7c9de4q71adeaf3a2dd8159@mail.gmail.com> <479C0B5B.9030709@FreeBSD.org> <3bbf2fe10801270642m5ec609d8xb29add77ced36d8a@mail.gmail.com> <479FA3E8.10606@FreeBSD.org> <3bbf2fe10801291411v302dd33at54ebe538397e8fac@mail.gmail.com> <20080130130820.GA88429@comp.chem.msu.su>

next in thread | previous in thread | raw e-mail | index | archive | help
2008/1/30, Yar Tikhiy <yar@comp.chem.msu.su>:
> On Tue, Jan 29, 2008 at 11:11:13PM +0100, Attilio Rao wrote:
> >
> > I'm committing my WITNESS patch now to perforce so that other people
> > can hopefully stress-test it before to be committed.
>
> Do you think that that patch is applicable in my case?  I.e., shall
> I use it to get more debug info on my panics?
>
> If so, where is the patched file in the depot?

Sorry but I had to delay the operation so far.
In the end, a suitable patch is located here:
http://www.freebsd.org/~attilio/witness_lockmgr.diff

I tried it and it alredy reported 4 LORs just when booting the kernel :)
So I would expect reasonably LOR cascades with this patch.

If you all 3 (Scot, Yar and Doug) could try and test it I would
appreciate a lot.

Thanks,
Attilio

PS: This is the commit log to perforce:
Add WITNESS support to lockmgr.
       A couple of notes:
       - Two options have been added in order to serve WITNESS:
               * LK_NOWITNESS which disables the support for the specified
                 lock
               * LK_NODUP which disallows the usual DUPOK behaviour
                 assumed as the default with lockmgr
       - In the case of lockmgr_disown() the lock is simply dropped.
         This means that a printout won't show the lock held even if it
         is basically held by LK_KERNPROC
       - In the case of upgrade we can have 3 different cases:
               * The shared lock is unheld but consequent acquisition
                 fails; in this case the lock is reported dropped
               * We are the first upgrader so there is an effective
                 WITNESS_UPGRADE
               * We are not the first upgrader so after the shared unlocking
                 we need to acquire the lock in exclusive mode; this will be
                 reported with 2 different WITNESS steps.
       - In the case of LK_DRAIN the lock will be only checked about the
         order but it won't be marked as acquired. This happens because a
         drained lock is directly destroyed and not really released, so
         witness_destroy() would badly panic in this case



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