Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Feb 2012 12:20:06 +0200
From:      Gleb Kurtsou <gleb.kurtsou@gmail.com>
To:        Florian Smeets <flo@FreeBSD.org>
Cc:        Konstantin Belousov <kib@FreeBSD.org>, decke@FreeBSD.org, "current@freebsd.org" <current@FreeBSD.org>
Subject:   Re: Processes getting stuck in state tmpfs
Message-ID:  <20120211102006.GA1274@reks>
In-Reply-To: <4F358F01.1090508@FreeBSD.org>
References:  <4F358F01.1090508@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On (10/02/2012 22:41), Florian Smeets wrote:
> Hi,
> 
> if you set WRKDIRPREFIX to a tmpfs mountpoint and try to build audio/gsm
> from ports one of the mv processes gets stuck in state tmpfs quite
> often. Traces from a kernel with WITTNESS and DEBUG_VFS_LOCKS are
> available here http://tb.smeets.im/~flo/tmpfs.txt

It's because of incorrect vnode locking order in tmpfs_rename. Issue is
known and tmpfs is not the only file system suffering from it (e.g. ext2).

There two ways of working around it in tree:
* UFS: try locking vnode, unlock all vnodes on failure, restart,
relookup vnodes needed.
* ZFS: introduce directory entry locks to guarantee fvp won't disappear,
fdvp can be safely traversed, etc. That won't be easy..

UFS-way would be a good temporal solution, but I think we should work on
improving VOP_RENAME() in a long run.

I'll try to prepare a patch in several days.

Thanks,
Gleb.



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