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

From: Minchan Kim
Date: Thu Mar 12 2009 - 19:21:28 EST


Hi, Peter.

On Thu, 12 Mar 2009 12:50:08 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> 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.

It ins't true any more.
UNEVICTABLE_LRU will move ramfs's page from LRU to unevictable list.
Couldn't we solve this problem if NOMMU can support CONFIG_UNEVICTABLE_LRU ?


> --
> 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/


--
Kinds Regards
Minchan Kim
--
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/