Subject: page reuse while accessing files sequentially
To: None <tech-kern@netbsd.org>
From: Frank Kardel <Frank.Kardel@Acrys.COM>
List: tech-kern
Date: 06/04/2004 10:07:41
Hi *,

just a few thoughs with respect to vm page usage, i haven't checked whether
this has been discussed before, if it has: I am sorry.

When writing a large backup data is copied sequentially from a file to 
some place else.
The vm system seemingly keeps these pages around just like any other 
file pages. Thus
there is a constant need for fresh pages and thus all other file pages 
are pushed out in
favor of the pages for the sequential file copy.

Would it make sense to categorize file pages with respect to their usage 
as sequential
access/random access ? Thus the file page sub class could be further 
divided in
sequential pages and random access pages.

A file(vnode) would start out as sequential access vnode until a 
decision can be made, that
access is random. Indications could be:
  - the vnode is mmapped
  - non sequential access
Pages allocated could be marked with the sequential/random information 
of the vnode they
belong to. The sequential page pool could be limited separatly to keep 
it from monopolizing
the file page pool. Even the executables (mmap property) could be 
handled that way without
the need for an executable page class.

A related strategy seems the exist in Solaris 8, where sequential access 
leads to a FIFO
replacement strategy. This might be dangerous though, as we did have 
once a state where
our java vm was seemingly on the FIFO replacement strategy making work 
very slow :-( .
This effect should be avoided.

Any comments ?

--
  Frank