Skip site navigation (1)Skip section navigation (2)
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>