Re: [uClinux-dev] RE: [PATCH] NOMMU: Pages allocated to a ramfsinode's pagecache may get wrongly discarded

From: Peter Zijlstra
Date: Thu Mar 12 2009 - 07:51:30 EST


On Thu, 2009-03-12 at 11:29 +0000, Jamie Lokier wrote:
> Berkhan, Enrik (GE Infra, Oil & Gas) wrote:
> > Andrew Morton wrote:
> > > On Wed, 11 Mar 2009 15:30:35 +0000
> > > David Howells <dhowells@xxxxxxxxxx> wrote:
> > >> From: Enrik Berkhan <Enrik.Berkhan@xxxxxx>
> > >>
> > >> The solution is to mark the pages dirty at the point of allocation by
> > >> the truncation code.
> > >
> > > Was there a specific reason for using the low-level SetPageDirty()?
> >
> > No, no specific reason. It was just my first try of a fix after spotting
> > the problem. After a short discussion with David, we decided to wait for
> > others' comments on using the low-/high-level approach.
>
> Tangentially related...
>
> Does the vm pageout logic include or skip these "dirty" pages looking
> for candidates to flush to storage? What about with MMU?

Includes them, regular pageout will try to do the writeout to clean them
and then discard them.

The ramfs stuff is rather icky in that it adds the pages to the aging
list, marks them dirty, but does not provide a writeout method.

This will make the paging code scan over them (continuously) trying to
clean them, failing that (lack of writeout method) and putting them back
on the list.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/