Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2005 15:37:49 +0200
From:      Juergen Unger <j.unger@addict.de>
To:        freebsd-hackers@freebsd.org
Subject:   Re: snapshots and innds
Message-ID:  <20050601133749.GA64511@crow.addict.de>
In-Reply-To: <200505230517.j4N5HUYd032003@beastie.mckusick.com>
References:  <200505230517.j4N5HUYd032003@beastie.mckusick.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi !

I don't know if its may or may not be from the same reason:
On an 5.4-p1 I started using snapshots on loopback mouted
files with mdconfig.  First I seems to be all ok but then
more first one, then more and more processes get stuck in some
(for me) unknown state and in the end even the start of the
login shell for the serial console hang.  Since I did not
know how to look more into detail with this stuck processes
the only way was to power-cycle.
What can I do to track down this problem when I am able
to reproduce it on the my testmachine (which is identical
except memory to the system where it happend) ?

any help welcome,

  Juergen

On Sun, May 22, 2005 at 10:17:30PM -0700, Kirk McKusick wrote:
> Excellent detective work on your part. The invarient that is being
> broken here is that you are never supposed to hold a vnode locked
> when you call vn_start_write. The call to vn_start_write should
> be done in vm_object_sync before acquiring the vnode lock rather
> than later in vnode_pager_putpages. Of course, moving the
> vn_start_write out of vnode_pager_putpages means that we have to
> track down every other caller of vnode_pager_putpages to make sure
> that they have also done the vn_start_write call as well.
>
> Jeff Robertson has come up with a much cleaner way of dealing with
> the suspension code that I believe he is using in the -current tree.
> It puts a hook in the ufs_lock code that tracks the number of locks
> held in each filesystem. To do a suspend, it blocks all new lock
> requests on that filesystem by any thread that does not already
> hold a lock and waits for all the existing locks to be released.
> This obviates the need for the vn_start_write calls sprinkled all
> through the system. I have copied Jeff on this email so that he
> can comment further on this issue as he is much more up to speed
> on it at the moment than I am.
>
>       Kirk McKusick
>
> =-=-=-=-=-=-=                                                                 >
> From: steve@Watt.COM (Steve Watt)
> Date: Sun, 22 May 2005 14:02:39 -0700
> In-Reply-To: steve@wattres.Watt.COM (Steve Watt)
>        "snapshots and innds" (Dec 18, 17:39)
> To: freebsd-hackers@freebsd.org
> Subject: Re: snapshots and innds
> Cc: mckusick@mckusick.com
> X-Archived: 1116795759.948751269@wattres.Watt.COM
> X-ASK-Info: Whitelist match [from steve@watt.com] (2005/05/22 14:03:00)
>
> [ OK, there's a lot of text in here, but I have definitively found a
>   deadlock between ffs_mksnap and msync(). ]

--
ENOSIG



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