[squeak-dev] lowSpaceWatcher problems

David T. Lewis lewis at mail.msen.com
Wed Mar 13 03:33:50 UTC 2013


On Tue, Mar 12, 2013 at 11:48:07AM -0700, tim Rowledge wrote:
> 
> On 11-03-2013, at 10:52 PM, tim Rowledge <tim at rowledge.org> wrote:
> 
> > 
> > There is, or at least was, a pathological condition that can cause nastiness. It afflicts RISC OS particularly because there is no virtual memory to hide the symptoms under the rug of gradual slowing.
> > 
> > I forget exactly where in the code it is -I'm pretty sure there is a Mantis report on the issue somewhere- but there is a place where memory is simply stolen from the lowspace buffer without any sort of nod to the lowspace mechanism. If anyone wants to look around right now, look for places where the memory expansion call is used and a bit later; consider what happens when there is no more memory to be got. In the GC related code, some space is stolen from remaining room.  I could probably take a quick look for the evidence tomorrow.
> 
> Damn, can't find details. I know they're somewhere in my email archive?
> 
> Basically, somewhere around the allocateChunk/sufficientSpaceToAllocate/sufficientSpaceAfterGC/initializeMemoryFirstFree area, there is a loophole whereby the freeBlock base is set without any consideration of updating the low space notification stuff. I remember test cases where you could end up with a sudden leap to 4 bytes of free space or similar. Not generally survivable. It hit me because RISC OS doesn't do memory expansion but on a server I rather suspect you have a top limit for virtual memory and the same case seems likely to obtain.
> 

Is it in this thread?
http://lists.squeakfoundation.org/pipermail/vm-dev/2005-May/000216.html

Googling "raab rowledge lowspace squeak" yields a number of relevant links :)

Dave



More information about the Squeak-dev mailing list