Date: Mon, 15 Oct 2001 14:35:51 -0700 (PDT) From: Matt Dillon <dillon@earth.backplane.com> To: Dag-Erling Smorgrav <des@ofug.org> Cc: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: Re: cvs commit: src/sys/vm vnode_pager.c Message-ID: <200110152135.f9FLZpg56816@earth.backplane.com> References: <200110121817.f9CIHYU38714@freefall.freebsd.org> <xzpelo8ii94.fsf@flood.ping.uio.no> <200110122330.f9CNU1u36917@earth.backplane.com> <xzpelo4r90f.fsf@flood.ping.uio.no>
next in thread | previous in thread | raw e-mail | index | archive | help
: :Matt Dillon <dillon@earth.backplane.com> writes: :> > Does this explain why my development box (with FreeBSD, NetBSD and :> > XFree86 repo mirrors and about three full FreeBSD source trees checked :> > out) has a shitload of FFS nodes and spends 8% of its time running :> > syncer, resulting in crappy interrupt latency? Or is that a different :> > bug? If this is the one, I'm immensely grateful that you fixed it. :> Possibly. Apply the patch and find out, I'd really like to know if it :> makes a difference. : :No difference. 24 hours' uptime, patch applied and all file systems :mounted async: : :des@des /usr/src% vmstat -m | grep FFS : 256 UFS mount, FFS node, newblk, IpFw/IpAcct, routetbl, ifaddr, BPF, : FFS node 71741 17936K 17938K 85338K 1341645 0 0 256 : :and running sync(8) causes the machine to hang and ignore keystrokes :and mouse movements for about a second, just like before. : :DES :-- :Dag-Erling Smorgrav - des@ofug.org The suspect code in question here is, I am guessing, vfs_msync() in kern/vfs_subr.c. It scans the entire vnode list and there are two restart situations that I believe could be creating an issue. I saw a very similar problem in VFS/BIO and PAGEOUT subsystems, where they had loop-restart conditions that could result in huge cpu wasteage. The solution is generally to insert a dummy node as a place-holder (that's what I did for the pageout daemon) in order to be able to avoid having to restart the loop after hitting a blocking condition. It would be nice if we had some kernel profiling output to confirm my guess. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110152135.f9FLZpg56816>