Subject: Re: Weird hang on pentium-133 running 1.3_ALPHA
To: None <firstname.lastname@example.org>
From: John S. Dyson <email@example.com>
Date: 11/21/1997 14:52:26
Jason Thorpe said:
> Unfortunately, given the structure of the current VM system, that's
> difficult to do.
Yes. It can be done, as you imply, but is a mess. Even in FreeBSD.
> What needs to happen is the VM system needs to keep track of all mappings
> that could allocate backing store from the swappager. When these mappings
> consume all of swap, the mappings need to start failing. This, of course,
> breaks sparse address spaces, so you'd need some way of saying "give me
> all the address space that I want, but if you later fail to allocate
> backing store, kill me" on a per-process basis.
Note that it isn't just mappings, but any kind of default pager (swap)
backed object. (In the MACH VM, you can have many objects backing the
same address space.) The MACH VM code is lazy about cleaning up
objects that shouldn't be needed. (Remember the collapse problem?) That
is only part of it. So, not only do you have to worry about the mappings,
but also about the objects that might be backing them :-(.
When I have worked on systems that use swap space conservatively, I have
found that system developers and users are generally much more frustrated
about the way that swap is allocated. The lazy scheme used by FreeBSD
and NetBSD is usually friendlier. With disk space getting so cheap though,
it might be time to reconsider. (Oh, running out of swap space, just add
another Barracuda, and dedicate it to swap.)