Date: Wed, 19 Apr 2000 10:09:28 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: Zhihui Zhang <zzhang@cs.binghamton.edu> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Questions of the syncer process Message-ID: <200004191709.KAA23683@apollo.backplane.com> References: <Pine.SOL.4.21.0004191113350.26080-100000@sol.cs.binghamton.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
:
:I have two questions related to the syncer process that replaces the old
:update process:
:
:(1) The syncer process is waken up once a second (it sleeps on lbolt). If
:I have more than 30 mounted filesystems, then each filesystem's dirty data
:will stay more than 30 seconds. If I only have a couple of filesystems,
:then the syncer will run more frequenty than the old update process. Is
:this a good choice?
The filesystem sync time has nothing to do with the number of
mounted filesystems. Every dirty vnode is added to the syncer
list and placed in a specific delay slot. The syncer gets to
it in that amount of time no matter how many mounted filesystems
there are - usually every 30 seconds or so.
:(2) I do not understand why vfs_msync(mp, MNT_NOWAIT) is called before
:VFS_SYNC(mp, MNT_LAZY,...). It seems to me that the latter includes the
:work done by the former.
:
:Thanks for any insights into this subject.
:
:-Zhihui
Even though we have a unified buffer cache, we do not
have unified bookeeping. vfs_msync() is responsible
for converting the bookeeping on dirty VM pages into
bookeeping on filesystem buffers. That is, if it
finds a dirty VM page it ensures that there is a dirty
filesystem buffer header associated with it. Otherwise
the filesystem will not know they are dirty.
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004191709.KAA23683>
