Subject: Re: Virtual Memory Subsystem
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Niklas Hallqvist <niklas@filippa.appli.se>
List: port-i386
Date: 11/26/1996 19:17:43
On Tue, 26 Nov 1996, Jonathan Stone wrote:
> 
> mycroft@gnu.ai.mit.edu (Charles M. Hannum) writes:
> 
> >Their `fix' will occasionally remove an object that another object is
> >pointing to, causing stray pointer references.  We were, in fact,
> >working with Niklas to fix this, but he apparently decided it wasn't
> >important enough to get it right, and punted.
> 
> If I've followed this correctly, the OpenBSD fix:
> 
> 	i) collapses shadow-copy object chains by copying
> 	   swap pages from one object to another, (i.e., involving paging
> 	   and copying), and

Well, there are several cases, the most common is actually just renaming
pages which is cheap.  There is however the "expensive" case which occurs
very seldom, and that requires pagein alright.  Actually BSD/OS skips this
case, apparently just the "cheap" collapsing operation suffices for them.
 
>        ii) has bugs in doing so that can leave danging VM-object 
> 	   references.

Yes, this is true.  Although the bug occurs much less seldom than
collapses kick in.  In fact only one user of OpenBSD notices it.
I guess I have to read the code again, as noone else seems willing to find
my bug :-)  I just don't have much time for something this obscure and
uncommon.

Niklas