Messages in this thread |  | | | Subject | Re: [uClinux-dev] RE: [PATCH] NOMMU: Pages allocated to a ramfs inode's pagecache may get wrongly discarded | | From | Peter Zijlstra <> | | Date | Thu, 12 Mar 2009 12:50:08 +0100 |
| |
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@redhat.com> wrote: > > >> From: Enrik Berkhan <Enrik.Berkhan@ge.com> > > >> 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.
|  |