Subject: Re: kern/15364
To: None <chs@netbsd.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: netbsd-bugs
Date: 09/04/2005 09:48:02
The following reply was made to PR kern/15364; it has been noted by GNATS.
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
To: chuq@chuq.com
Cc: gnats-bugs@NetBSD.org
Subject: Re: kern/15364
Date: Sun, 04 Sep 2005 18:47:15 +0900
> On Wed, Aug 31, 2005 at 05:29:45AM +0900, YAMAMOTO Takashi wrote:
> > > could you give some details on how the pagedaemon would be confused by this?
> >
> > pagedaemon frees the whole block when one of the corresponding pages
> > happens to be inactive.
>
> could you explain how this happens?
> here's the code that sets PG_RELEASE or PG_PAGEOUT on a page.
> the marked lines skip setting those flags on pages in the cluster that
> are outside the original request. this should prevent the problem you're
> describing, right?
> --> if (tpg->offset < startoff || tpg->offset >= endoff)
> --> continue;
for normal filesystems, right.
however, for softupdate, no.
as ffs_putpages expands the request, the "original request" here
is already expanded.
i have seen a system on which uvmexp.pdfreed is larger
than uvmexp.pdscans.
YAMAMOTO Takashi