Re: pageable page tables

Benjamin C.R. LaHaise (blah@kvack.org)
Tue, 25 Nov 1997 18:32:02 -0500 (EST)


On Tue, 25 Nov 1997, Rik van Riel wrote:
...
> It might make some difference when you have suspended some
> _large_ simulation because the machine is used interactively
> during the day, or when you have _loads_ of processes running,
> or...

If you have enough memory to run these kinds of simulations, spending well
less than 1% of memory on page tables is a non-issue. But where lots of
processes are running... A better idea is to encourage the executable
loaders to map processes in an area where they don't cause an additional
page to be added to the page table...

> Another concern is that users can grab _all_ of system memory
> by having several processes do a 2GB mmap of /dev/zero...
> This 'doesn't take any memory' so they can take up as much
> (non-pageable) pagetable memory as they want.
> In fact, this is the main reason people asked me if I could look
> into this... This is one of the biggest denial-of-service holes
> still left. (ssstt)

I looked into doing the swappable page table thing, and it would be a pain
(too many areas in code assume they won't sleep while walking the page
table). The easier (better) approach is to include the page table pages
in the RSS of a process, or perhaps add another field indicating the
non-swappable RSS. Then, perhaps, better decisions can be made about when
the system is really 'out of memory'.

-ben