[squeak-dev] lowSpaceWatcher problems

karl ramberg karlramberg at gmail.com
Mon Mar 18 22:29:31 UTC 2013


I don't see how #memoryHogs and #freeSomeSpace can work.


SystemDictionary>>lowSpaceWatcher
...
self memoryHogs isEmpty
ifFalse: [free := self bytesLeft.
self memoryHogs
do: [ :hog | hog freeSomeSpace ].
self bytesLeft > free
ifTrue: [ ^ self installLowSpaceWatcher ]].

#freeSomeSpace is not implemented and SystemDictionary>>lowSpaceWatcher is
the only sender of #memoryHogs

Karl



On Wed, Mar 13, 2013 at 4:33 AM, David T. Lewis <lewis at mail.msen.com> wrote:

> 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
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130318/18b4cda4/attachment.htm


More information about the Squeak-dev mailing list