:
: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
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message