Re: leak of the vnodes




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 ?

Both are affected, the ddb output bellow is from svn206142 for HEAD.

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.

I lowered max to get problem earlier

kern.maxvnodes: 40000
kern.minvnodes: 25000
vfs.freevnodes: 0
vfs.wantfreevnodes: 25000
vfs.numvnodes: 37934
debug.vnlru_nowhere: 83

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 ?

Petr

db> show mount

0xffffff0003939be0 /dev/ad0s2a on / (ufs)
0xffffff000393a000 devfs on /dev (devfs)
0xffffff00039398e8 linprocfs on /proc (linprocfs)
0xffffff0009b9d000 /dev/ad0s2d on /opt/sid/build (ufs)

db> show mount 0xffffff0003939be0

0xffffff0003939be0 /dev/ad0s2a on / (ufs)
mnt_flag = LOCAL, ROOTFS
mnt_kern_flag = EXTENDED_SHARED, MPSAFE, LOOKUP_SHARED
mnt_opt = rw, fstype, fspath, from, errmsg, noro
mnt_stat = { version=537068824 type=7 flags=0x0000000000005000 bsize=2048 iosize=16384 blocks=9233079 bfree=1720773 bavail=982127 files=2402302 ffree=2211006 syncwrites=0 asyncwrites=0 syncreads=0 asyncreads=0 namemax=255 owner=0 fsid=[1208030997, -638345611] }
mnt_cred = { uid=0 ruid=0 }
mnt_ref = 647
mnt_gen = 1
mnt_nvnodelistsize = 647
mnt_writeopcount = 0
mnt_noasync = 0
mnt_maxsymlinklen = 120
mnt_iosize_max = 131072
mnt_hashseed = 3875541360
mnt_secondary_writes = 0
mnt_secondary_accwrites = 1674383
mnt_gjprovider = NULL

db> show mount 0xffffff000393a000

0xffffff000393a000 devfs on /dev (devfs)
mnt_flag = MULTILABEL, LOCAL
mnt_kern_flag = MPSAFE
mnt_opt =
mnt_stat = { version=537068824 type=2 flags=0x0000000004001000 bsize=0 iosize=0 blocks=0 bfree=0 bavail=0 files=0 ffree=0 syncwrites=0 asyncwrites=0 syncreads=0 asyncreads=0 namemax=255 owner=0 fsid=[33619712, 2] }
mnt_cred = { uid=0 ruid=0 }
mnt_ref = 36
mnt_gen = 1
mnt_nvnodelistsize = 36
mnt_writeopcount = 0
mnt_noasync = 0
mnt_maxsymlinklen = 0
mnt_iosize_max = 65536
mnt_hashseed = 1577461787
mnt_secondary_writes = 0
mnt_secondary_accwrites = 0
mnt_gjprovider = NULL


db> show mount 0xffffff00039398e8

0xffffff00039398e8 linprocfs on /proc (linprocfs)
mnt_flag = LOCAL
mnt_kern_flag = MPSAFE
mnt_opt = fstype, fspath, from, errmsg
mnt_stat = { version=537068824 type=8 flags=0x0000000000001000 bsize=4096 iosize=4096 blocks=1 bfree=0 bavail=0 files=1 ffree=0 syncwrites=0 asyncwrites=0 syncreads=0 asyncreads=0 namemax=255 owner=0 fsid=[134283009, 8] }
mnt_cred = { uid=0 ruid=0 }
mnt_ref = 393
mnt_gen = 1
mnt_nvnodelistsize = 393
mnt_writeopcount = 0
mnt_noasync = 0
mnt_maxsymlinklen = 0
mnt_iosize_max = 65536
mnt_hashseed = 486483318
mnt_secondary_writes = 0
mnt_secondary_accwrites = 0
mnt_gjprovider = NULL


db> show mount 0xffffff0009b9d000

0xffffff0009b9d000 /dev/ad0s2d on /opt/sid/build (ufs)
mnt_flag = LOCAL
mnt_kern_flag = EXTENDED_SHARED, MPSAFE, LOOKUP_SHARED
mnt_opt = rw, fstype, fspath, from, errmsg, noro
mnt_stat = { version=537068824 type=7 flags=0x0000000000001000 bsize=2048 iosize=16384 blocks=9683239 bfree=4555857 bavail=3781198
files=2520062 ffree=1888868 syncwrites=0 asyncwrites=0 syncreads=0 asyncreads=0 namemax=255 owner=0 fsid=[1208030997, -1215882613] }
mnt_cred = { uid=0 ruid=0 }
mnt_ref = 2297
mnt_gen = 1
mnt_nvnodelistsize = 2296
mnt_writeopcount = 0
mnt_noasync = 0
mnt_maxsymlinklen = 120
mnt_iosize_max = 131072
mnt_hashseed = 1634023874
mnt_secondary_writes = 1
mnt_secondary_accwrites = 1332980
mnt_gjprovider = NULL


_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: leak of the vnodes
    ... filesystem (UFS or devfs) leaks. ... can you unmount linprocfs before the test and see whether it ... db> show mount 0xffffff0003939be0 ... mnt_opt = rw, fstype, fspath, from, errmsg, noro ...
    (freebsd-hackers)
  • Re: Init.c, making it chroot
    ... simply let init mount it in all cases, ... seem to be a clear reason why the kernel needs to mount ... it actually mounts devfs on / before ... As far as I can tell, the -d fallback in init is totally ...
    (freebsd-hackers)
  • Re: Unable to unmount idle filesystem on 6.2
    ... devfs on /dev ... # umount -f /usr/ports ... # mount -o ro /usr/ports ... I'll build a kernel with the KDB and DDB options and hope the problem recurs. ...
    (freebsd-questions)
  • DevFS mounting problems (was: Re: Think I need ttyN where N>8)
    ... may really be devfs itself I have problems with. ... > a kernel module for the hardware or specify module options. ... I've got Xinerama running on the second card right now. ... mount should know about it if devfs is used. ...
    (Debian-User)
  • Re: FS hang when creating snapshots on a UFS SU+J setup
    ... Here's some reference info - let me know what else I should provide. ... devfs on /dev ... linprocfs on /compat/linux/proc ... again so I was not able to debug or diagnose further. ...
    (freebsd-current)