Re: page tables

Stephen C. Tweedie (sct@dcs.ed.ac.uk)
Sat, 27 Apr 1996 22:01:43 +0100


Hi,

On Thu, 25 Apr 96 12:25:24 +0100,
Hemment_Mark/HEMEL_IOPS_INTERNATIONAL-SALES@uniplex.co.uk said:

> Linux's algorithm for deciding what to page out is _not_ 'traditional'
> UNI*X - but it works reasonably well. To get Level-2 tables paging
> would require a move towards the tradition scheme of; page reference
> bits, page ageing,...which I believe to be well worthwhile.

Linux uses --- wait for it --- page reference bits and page aging.
Exactly what improvements are you suggesting? With the exception of
the known lack of readahead and writeahead in the swapping code,
Linux-1.3.9x's pager actually performs better than any alternative
I've tested. It certainly beats FreeBSD-2.1 (although they've done a
lot of work on the FreeBSD-current mm) and Solaris, especially for
interactive or server workloads.

> BTW, while not a good idea to do, can Level-1 page tables be paged?
> Is it just a matter of setting the PDBR to point towards a 'bad'
> page directory?

In principle you don't want to page level-1 tables unless you have
completely suspended the process. You can, with a bit of work,
pageout mid- and low-level page tables, but no Unixen I'm aware of do
that. The only mechanism in other Unixen which removes page tables is
process swapping, where an entire process --- including page tables
--- gets completely removed from vm and gets barred from being
rescheduled for a while, and that only occurs when the vm is seriously
loaded.

Cheers,
Stephen.

--
Stephen Tweedie <sct@dcs.ed.ac.uk>
Department of Computer Science, Edinburgh University, Scotland.