Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sat, 27 Apr 1996 22:01:43 +0100 | From | "Stephen C. Tweedie" <> | Subject | Re: page tables |
| |
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.
| ![\](/images/icornerr.gif) |