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>