Re: unexpected paging during large file reads in 2.1.127

Rik van Riel
1998-11-16T23:01:03Z

On Mon, 16 Nov 1998, Stephen C. Tweedie wrote:
> On 12 Nov 1998 23:45:42 +0100, Zlatko Calusic <Zlatko.Calusic@CARNet.hr>
> said:
>
> >> Agreed, we should do something about that.
> >>
> >> > + age_page(page);
> >> > + age_page(page);
> >> > age_page(page);
>
> The real cure is to disable page aging in the page cache completely.
> Now that we have disabled it for swap, it makes absolutely no sense at
> all to keep it in the page cache.

This is not entirely true. There is a major difference
between pages in the page cache and pages that can go
into swap. The latter kind will always be mapped inside
the address space of a program (where it gets proper
aging and stuff), while file data could be used by
doing a read() where the data never gets mapped into
the processes address space.

Now we can get severe problems with readahead when we
are evicting just read-in data because it isn't mapped,
resulting in us having to read it again and doing double
I/O with a badly performing program.

The only reason why it's better than the alternative is
because we don't do swap readahead yet...

cheers,

Rik -- slowly getting used to dvorak kbd layout...
+-------------------------------------------------------------------+
| Linux memory management tour guide. H.H.vanRiel@phys.uu.nl |
| Scouting Vries cubscout leader. http://www.phys.uu.nl/~riel/ |
+-------------------------------------------------------------------+