Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Jun 2011 17:50:43 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Peter Holm <peter@holm.cc>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Thoughts on TMPFS no longer being considered "highly experimental"
Message-ID:  <20110624145043.GY48734@deviant.kiev.zoral.com.ua>
In-Reply-To: <20110624132105.GA75382@x2.osted.lan>
References:  <20110623163109.GA508@dragon.NUXI.org> <20110623202153.GS48734@deviant.kiev.zoral.com.ua> <20110624103016.GA71991@x2.osted.lan> <20110624110627.GW48734@deviant.kiev.zoral.com.ua> <20110624132105.GA75382@x2.osted.lan>

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

--Lqnp4vydszvywDyS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 24, 2011 at 03:21:05PM +0200, Peter Holm wrote:
> On Fri, Jun 24, 2011 at 02:06:27PM +0300, Kostik Belousov wrote:
> > On Fri, Jun 24, 2011 at 12:30:16PM +0200, Peter Holm wrote:
> > > On Thu, Jun 23, 2011 at 11:21:53PM +0300, Kostik Belousov wrote:
> > > > On Thu, Jun 23, 2011 at 09:31:09AM -0700, David O'Brien wrote:
> > > > > Does anyone object to this patch?
> > > > >=20
> > > > > David Wolfskill and I have run TMPFS on a number of machines for =
two
> > > > > years with no problems.
> > > > >=20
> > > > > I may have missed something, but I'm not aware of any serious PRs=
 on
> > > > > TMPFS either.
> > > > >=20
> > > > >=20
> > > > > Index: tmpfs_vfsops.c
> > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > > > > --- tmpfs_vfsops.c	(revision 221113)
> > > > > +++ tmpfs_vfsops.c	(working copy)
> > > > > @@ -155,9 +155,6 @@ tmpfs_mount(struct mount *mp)
> > > > >  		return EOPNOTSUPP;
> > > > >  	}
> > > > > =20
> > > > > -	printf("WARNING: TMPFS is considered to be a highly experimenta=
l "
> > > > > -	    "feature in FreeBSD.\n");
> > > > > -
> > > > >  	vn_lock(mp->mnt_vnodecovered, LK_SHARED | LK_RETRY);
> > > > >  	error =3D VOP_GETATTR(mp->mnt_vnodecovered, &va, mp->mnt_cred);
> > > > >  	VOP_UNLOCK(mp->mnt_vnodecovered, 0);
> > > >=20
> > > > The things I am aware of:
> > > > - there is a races on the lookup. They were papered over in r212305,
> > > > but the bug was not really fixed, AFAIR.
> > > >=20
> > > > - the tmpfs does double-buffering for the mapped vnodes. This is qu=
ite
> > > > insulting for the memory-backed fs, isn't it ? I have a patch, but =
it is
> > > > still under review.
> > > >=20
> > > > - I believe Peter Holm has more test cases that fails with tmpfs. He
> > > > would have more details. I somewhat remember some panic on execve(2=
) the
> > > > binary located on tmpfs.
> > > >=20
> > >=20
> > > I ran the TMPFS tests I have and so far I only spotted the mmap(2)
> > > problem:
> > >=20
> > > http://people.freebsd.org/~pho/stress/log/tmpfs/
> > It would be indeed good if the issue was the only remaining problem.
>=20
> Well, more testing is needed for sure.
>=20
> > The deadlock in tmpfs6.txt is caused by doing copyin() while having
> > a page busied. This should be fixed indirectly by the patch to
> > avoid double-buffering, I uploaded the latest version at
> > http://people.freebsd.org/~kib/misc/tmpfs.5.patch
> >=20
> > >=20
> > > > Removing the warning will not make the issues coming away.
> > >=20
>=20
> This doesn't compile:
>=20
> =3D=3D=3D> tmpfs (all)
> cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdin=
c   -DHAVE_KERNEL_OPTION_HEADERS -include /usr/src/sys/i386/compile/PHO/opt=
_global.h -I. -I@ -I@/contrib/altq
> -finline-limit=3D8000 --param inline-unit-growth=3D100 --param large-func=
tion-growth=3D1000 -fno-common -g -I/usr/src/sys/i386/compile/PHO  -mno-ali=
gn-long-strings -mpreferred-stack-boundary=3D2 -mno-sse
> -mno-mmx -msoft-float -ffreestanding -fstack-protector -std=3Diso9899:199=
9 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-proto=
types  -Wmissing-prototypes -Wpointer-arith -Winline
> -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-inc=
lude-dirs -fdiagnostics-show-option -c /usr/src/sys/modules/tmpfs/../../fs/=
tmpfs/tmpfs_subr.c
> cc1: warnings being treated as errors
> /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c: In function 'tmpf=
s_reg_resize':
> /usr/src/sys/modules/tmpfs/../../fs/tmpfs/tmpfs_subr.c:911: warning: 'uob=
j' is used uninitialized in this function
> *** Error code 1

Yes, the patch has rotten. Please try
http://people.freebsd.org/~kib/misc/tmpfs.6.patch

--Lqnp4vydszvywDyS
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (FreeBSD)

iEYEARECAAYFAk4EpEIACgkQC3+MBN1Mb4iDUACg14clzidOnQeDs7DNKhmCRPuN
cvsAn3Pb8Sx5VB4Q4uqgmT5rdqqy4Bn9
=gSuU
-----END PGP SIGNATURE-----

--Lqnp4vydszvywDyS--



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