Date: Wed, 17 Oct 2001 10:09:08 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: Dag-Erling Smorgrav <des@ofug.org> Cc: John Baldwin <jhb@FreeBSD.ORG>, fs@FreeBSD.ORG Subject: Re: Some questions regarding vfs / ffs Message-ID: <200110171709.f9HH98i97328@apollo.backplane.com> References: <XFMail.011016191649.jhb@FreeBSD.org> <xzpk7xvvwbw.fsf@flood.ping.uio.no> <200110170229.f9H2Tph84237@apollo.backplane.com> <xzpg08jvsg6.fsf@flood.ping.uio.no> <xzphesyu90n.fsf@flood.ping.uio.no>
next in thread | previous in thread | raw e-mail | index | archive | help
:Another possibility, of course, is to have ffs_sync() simply check if
:the vnode is on a worklist (v_flags & VONWORKLIST != 0) but that
:requires acquiring the vnode interlock, so we gain nothing.
:
:> All of this only solves part of the problem, though - the ffs_sync()
:> part - there's still something screwy with sched_sync(), but I'll need
:> to acquite more profiling data to figure out just *what*.
:
:Actually, there's nothing screwy about sched_sync(), except that I
:overlooked the fact that it calls sync_fsync() (through VOP_FSYNC())
:which calls ffs_sync(). Judging from collected stats, I'm wondering
:if there's really any point in calling ffs_sync() (indirectly) from
:sched_sync(), as it seems to rarely actually *do* much except screw up
:my interrupt latency. I guess it's useful as a safety net, but I
:don't really see how a vnode can be dirty and not on the sync list?
Woa! No, you can't get rid of sync_fsync(). The syncer worklist only
applies to vnodes with dirty blocks. It is not used to schedule
async meta-data updates (such as atime updates), nor does the worklist
deal with converting dirty VM pages to dirty buffer cache buffers (though
this is usually done right off the bat, there are situations where it is
not done), nor does the worklist deal with lazy quota updates.
:Ditching the syncer nodes will also (finally) allow FreeBSD laptops to
:let their disks spin down when idle...
:
:DES
This can be fixed fairly easily I think, but you can't ditch the syncer
vnodes. We simply have to make the filesystem be a bit smarter about
syncing the superblock.
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110171709.f9HH98i97328>
