Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Apr 2010 21:59:24 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Petr Salinger <Petr.Salinger@seznam.cz>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: leak of the vnodes
Message-ID:  <20100405185924.GS2415@deviant.kiev.zoral.com.ua>
In-Reply-To: <Pine.LNX.4.62.1004052223210.23732@sci.felk.cvut.cz>
References:  <Pine.LNX.4.62.1004021934550.15800@sci.felk.cvut.cz> <20100402190239.GL2415@deviant.kiev.zoral.com.ua> <Pine.LNX.4.62.1004022337010.16354@sci.felk.cvut.cz> <Pine.LNX.4.62.1004030915440.17349@sci.felk.cvut.cz> <20100403165238.GO2415@deviant.kiev.zoral.com.ua> <Pine.LNX.4.62.1004032106480.18491@sci.felk.cvut.cz> <20100403171945.GQ2415@deviant.kiev.zoral.com.ua> <Pine.LNX.4.62.1004032318210.18783@sci.felk.cvut.cz> <20100403210829.GW2415@deviant.kiev.zoral.com.ua> <Pine.LNX.4.62.1004052223210.23732@sci.felk.cvut.cz>

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

--4sIpN43wh+0KCG0T
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 05, 2010 at 10:36:19PM +0200, Petr Salinger wrote:
> >>
> >>>>BTW, the 7.3 seems be unaffected by this.
> >>
> >>Confirmed, the whole build of gcc-4.3 ends with
> >>
> >>kern.maxvnodes: 100000
> >>kern.minvnodes: 25000
> >>vfs.freevnodes: 22070
> >>vfs.wantfreevnodes: 25000
> >>vfs.numvnodes: 39907
> >>debug.vnlru_nowhere: 0
> >>
> >>while for 8.0 kernel even 120000 in vfs.numvnodes does not suffice.
> >BTW, can you check latest RELENG_8 kernel, or HEAD, for the issue ?
>=20
> Both are affected, the ddb output bellow is from svn206142 for HEAD.
>=20
> >>Are all vnodes in some mountpoint ? What pipes and sockets ?
> >I do not quite understand the question.
> >
> >Pipes and sockets are not vnodes, and I want to see what type of
> >filesystem (UFS or devfs) leaks.
>=20
> I lowered max to get problem earlier
>=20
> kern.maxvnodes: 40000
> kern.minvnodes: 25000
> vfs.freevnodes: 0
> vfs.wantfreevnodes: 25000
> vfs.numvnodes: 37934
> debug.vnlru_nowhere: 83
>=20
> I would expect that sum of mnt_nvnodelistsize should be vfs.numvnodes.
> The sum is at about 3400, but the vfs.numvnodes is at about 38000.
> Is my expectation correct ?
Not quite, reclaimed vnode is removed from mp list. Can you check
that vmstat -z | grep VNODE output coincides with sysctl vfs.numvnodes ?

Also, can you unmount linprocfs before the test and see whether it
leaks as before ?

Another thing to try is set sysctl debug.disablefullpath to 1.

Thanks.
>=20
> Petr
>=20
> db> show mount
>=20
> 0xffffff0003939be0 /dev/ad0s2a on / (ufs)
> 0xffffff000393a000 devfs on /dev (devfs)
> 0xffffff00039398e8 linprocfs on /proc (linprocfs)
> 0xffffff0009b9d000 /dev/ad0s2d on /opt/sid/build (ufs)
>=20
> db> show mount 0xffffff0003939be0
>=20
> 0xffffff0003939be0 /dev/ad0s2a on / (ufs)
>     mnt_flag =3D LOCAL, ROOTFS
>     mnt_kern_flag =3D EXTENDED_SHARED, MPSAFE, LOOKUP_SHARED
>     mnt_opt =3D rw, fstype, fspath, from, errmsg, noro
>     mnt_stat =3D { version=3D537068824 type=3D7 flags=3D0x000000000000500=
0=20
> bsize=3D2048 iosize=3D16384 blocks=3D9233079 bfree=3D1720773 bavail=3D982=
127=20
> files=3D2402302 ffree=3D2211006 syncwrites=3D0 asyncwrites=3D0 syncreads=
=3D0=20
> asyncreads=3D0 namemax=3D255 owner=3D0 fsid=3D[1208030997, -638345611] }
>     mnt_cred =3D { uid=3D0 ruid=3D0 }
>     mnt_ref =3D 647
>     mnt_gen =3D 1
>     mnt_nvnodelistsize =3D 647
>     mnt_writeopcount =3D 0
>     mnt_noasync =3D 0
>     mnt_maxsymlinklen =3D 120
>     mnt_iosize_max =3D 131072
>     mnt_hashseed =3D 3875541360
>     mnt_secondary_writes =3D 0
>     mnt_secondary_accwrites =3D 1674383
>     mnt_gjprovider =3D NULL
>=20
> db> show mount 0xffffff000393a000
>=20
> 0xffffff000393a000 devfs on /dev (devfs)
>     mnt_flag =3D MULTILABEL, LOCAL
>     mnt_kern_flag =3D MPSAFE
>     mnt_opt =3D
>     mnt_stat =3D { version=3D537068824 type=3D2 flags=3D0x000000000400100=
0 bsize=3D0=20
> iosize=3D0 blocks=3D0 bfree=3D0 bavail=3D0 files=3D0 ffree=3D0 syncwrites=
=3D0=20
> asyncwrites=3D0 syncreads=3D0 asyncreads=3D0 namemax=3D255 owner=3D0 fsid=
=3D[33619712,=20
> 2] }
>     mnt_cred =3D { uid=3D0 ruid=3D0 }
>     mnt_ref =3D 36
>     mnt_gen =3D 1
>     mnt_nvnodelistsize =3D 36
>     mnt_writeopcount =3D 0
>     mnt_noasync =3D 0
>     mnt_maxsymlinklen =3D 0
>     mnt_iosize_max =3D 65536
>     mnt_hashseed =3D 1577461787
>     mnt_secondary_writes =3D 0
>     mnt_secondary_accwrites =3D 0
>     mnt_gjprovider =3D NULL
>=20
>=20
> db> show mount 0xffffff00039398e8
>=20
> 0xffffff00039398e8 linprocfs on /proc (linprocfs)
>     mnt_flag =3D LOCAL
>     mnt_kern_flag =3D MPSAFE
>     mnt_opt =3D fstype, fspath, from, errmsg
>     mnt_stat =3D { version=3D537068824 type=3D8 flags=3D0x000000000000100=
0=20
> bsize=3D4096 iosize=3D4096 blocks=3D1 bfree=3D0 bavail=3D0 files=3D1 ffre=
e=3D0=20
> syncwrites=3D0 asyncwrites=3D0 syncreads=3D0 asyncreads=3D0 namemax=3D255=
 owner=3D0=20
> fsid=3D[134283009, 8] }
>     mnt_cred =3D { uid=3D0 ruid=3D0 }
>     mnt_ref =3D 393
>     mnt_gen =3D 1
>     mnt_nvnodelistsize =3D 393
>     mnt_writeopcount =3D 0
>     mnt_noasync =3D 0
>     mnt_maxsymlinklen =3D 0
>     mnt_iosize_max =3D 65536
>     mnt_hashseed =3D 486483318
>     mnt_secondary_writes =3D 0
>     mnt_secondary_accwrites =3D 0
>     mnt_gjprovider =3D NULL
>=20
>=20
> db> show mount 0xffffff0009b9d000
>=20
> 0xffffff0009b9d000 /dev/ad0s2d on /opt/sid/build (ufs)
>     mnt_flag =3D LOCAL
>     mnt_kern_flag =3D EXTENDED_SHARED, MPSAFE, LOOKUP_SHARED
>     mnt_opt =3D rw, fstype, fspath, from, errmsg, noro
>     mnt_stat =3D { version=3D537068824 type=3D7 flags=3D0x000000000000100=
0=20
> bsize=3D2048 iosize=3D16384 blocks=3D9683239 bfree=3D4555857 bavail=3D378=
1198
> files=3D2520062 ffree=3D1888868 syncwrites=3D0 asyncwrites=3D0 syncreads=
=3D0=20
> asyncreads=3D0 namemax=3D255 owner=3D0 fsid=3D[1208030997, -1215882613] }
>     mnt_cred =3D { uid=3D0 ruid=3D0 }
>     mnt_ref =3D 2297
>     mnt_gen =3D 1
>     mnt_nvnodelistsize =3D 2296
>     mnt_writeopcount =3D 0
>     mnt_noasync =3D 0
>     mnt_maxsymlinklen =3D 120
>     mnt_iosize_max =3D 131072
>     mnt_hashseed =3D 1634023874
>     mnt_secondary_writes =3D 1
>     mnt_secondary_accwrites =3D 1332980
>     mnt_gjprovider =3D NULL
>=20

--4sIpN43wh+0KCG0T
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAku6MwsACgkQC3+MBN1Mb4ix4wCeI4KBaVtmDKSZ4h3DHHgooJjc
A64AoJfln3ZLqFShEjSO+iWDEigb4tkW
=kkch
-----END PGP SIGNATURE-----

--4sIpN43wh+0KCG0T--



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