Subject: Re: CVS commit: src/sys
To: YAMAMOTO Takashi <yamt@netbsd.org>
From: Chuck Silvers <chuq@chuq.com>
List: source-changes
Date: 07/25/2005 09:46:50
hi,

On Sun, Jul 17, 2005 at 12:27:47PM +0000, YAMAMOTO Takashi wrote:
> 
> Module Name:	src
> Committed By:	yamt
> Date:		Sun Jul 17 12:27:47 UTC 2005
> 
> Modified Files:
> 	src/sys/miscfs/genfs: genfs_node.h genfs_vnops.c
> 	src/sys/uvm: uvm_fault.c uvm_object.h
> 
> Log Message:
> ensure that vnodes with dirty pages are always on syncer's queue.
...
> - genfs_putpages: write protect pages when cleaning out, if
>   we're going to take the vnode off the syncer's queue.
>   uvm_fault: don't write-map pages unless its vnode is already on
>   the syncer's queue.
> 
>   fix PR/24596 (3) but in the different way from the suggested fix.
>   (to keep our current behaviour, ie. not to require explicit msync.
>   discussed on tech-kern@.)

this will cause problems for wired mappings.  we cannot change the
wired writable pmap entries for such mappings, since then we'll go back
through uvm_fault() on the next write access to that mapping, which will
put back the pmap entry as non-wired and may end up sleeping before
doing so.  for now, it's probably best to just leave a vnode on the syncer
queue for as long as wired mappings exist.

-Chuck