Date: Sat, 13 Oct 2001 09:18:19 -0700 (PDT) From: Matt Dillon <dillon@earth.backplane.com> To: Dag-Erling Smorgrav <des@ofug.org> Cc: Mike Silbersack <silby@silby.com>, <cvs-committers@FreeBSD.ORG>, <cvs-all@FreeBSD.ORG> Subject: Re: cvs commit: src/sys/vm vnode_pager.c Message-ID: <200110131618.f9DGIJ543530@earth.backplane.com> References: <20011012145142.L29945-100000@achilles.silby.com> <200110122026.f9CKQMS35969@earth.backplane.com> <200110130005.f9D05Fb37190@earth.backplane.com> <xzpzo6vh9ms.fsf@flood.ping.uio.no>
next in thread | previous in thread | raw e-mail | index | archive | help
:
:Matt Dillon <dillon@earth.backplane.com> writes:
:> Hmm. in re-reading this I think I have to clarify something...
:> when I said 'before the dirty buffer is flushed' I meant that if you
:> write() a small file and then mmap/access it before the buf_daemon
:> gets around to flushing the buffer that was diritied by the write, then
:> the mmap/access will put the page into the weird state. The same thing
:> can occur if you mmap() a file shared+RW and modify the fragment via
:> the mmap.
:
:Hmm, cvsup doesn't seem to use mmap for I/O. What do you mean by
:"access" in this context?
:
:DES
:--
:Dag-Erling Smorgrav - des@ofug.org
Any mmap()'d access (read or write) to a recently modified file can
trigger the problem. If the file is not mmap()d the problem does not
occur because write() only modifies those dirty bits within the range
of the file. It's the page fault that causes the dirty bits to be
forced to VM_PAGE_BITS_ALL (extending them past the file EOF). If
the page in question is backed by a filesystem fragment on the physical
disk rather then a filesystem block, the problem can occur.
Your particular case may or may not have anything to do with this bug.
If you are running cvsup or running a cvsupd or otherwise doing things
that scan the file tree, mounting with 'noatime' is the most important
thing you need to do.
-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?200110131618.f9DGIJ543530>
