[Vm-dev] Problem with #garbageCollect and -memory parameter

Mariano Martinez Peck marianopeck at gmail.com
Tue Nov 30 23:41:44 UTC 2010


On Wed, Dec 1, 2010 at 12:11 AM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

>
>
> On Tue, Nov 30, 2010 at 5:14 PM, David T. Lewis <lewis at mail.msen.com>wrote:
>
>>
>> Hi,
>>
>> I'm away and cannot check this right now, but if you look in the
>> SqS/VMMaker archive there there are a number of recent updates that
>> may address this problem. See the Montecello update comments for
>> VMMaker-dtl.188, VMMaker-dtl.199, and VMMaker-dtl.200 for summaries.
>> These updates would not be in any of the released VMs at this point,
>> but I have a hunch that they will take care of this problem.
>>
>
> Hi Dave. Ok...after a couple of hours I could compile a new VM for MacOS
> with VMMaker 205 and integrating all my changes :)
> So....this was something I have to do since several months already hehhehe
>
> Now, as you guessed, something  was related to that. Now, these are the
> results:
>
> normal:
>
> Smalltalk garbageCollect   481957728
> Smalltalk primBytesLeft 5738200
>
> with -memory 1500m
>
> Smalltalk garbageCollect    482093452
> Smalltalk primBytesLeft 6444200
>

mmmmmmm  if instead of sending -memory I modify Info.plist  and I set
1572864000  (1500gb)
then I get

Smalltalk garbageCollect  1518058920
Smalltalk primBytesLeft 5898636

:)

so maybe the mac vm is not taking into acount -memory but it does the file?

Cheers

Mariano


>
>
> Now, at least it is not negative. But I wonder....shouldn't I have more
> bytes left when I send 1500m ?
> how can I be sure that the VM is actually tacking into account this
> parameter?
> can I check some parameter in Smalltalk vmParameterAt:
> ?
>
> thanks!
>
> mariano
>
>
>> Dave
>>
>>
>> On Tue, Nov 30, 2010 at 02:43:50PM +0100, Mariano Martinez Peck wrote:
>> >
>> > Hi folks. I am using the standard SqueakVM  4.2.5beta1U.
>> > If I run normaly the VM with a normal Pharo image and I print Smalltalk
>> > garbageCollect -> I get something like  492130460
>> >
>> > Now...if I run the vm with the parameter -memory 1500m  and I then print
>> > Smalltalk garbageCollect -> I get a NEGATIVE number like:  -619402660
>> >
>> > I guess there is a problem in somewhere like ObjectMemory >> bytesLeft:
>> > but I don't know...
>> >
>> > Anyway, the problem in my case is in SmalltalkImage:
>> >
>> > okayToProceedEvenIfSpaceIsLow
>> >     "Return true if either there is enough memory to do so safely or if
>> the
>> > user gives permission after being given fair warning."
>> >
>> >     self garbageCollectMost > self lowSpaceThreshold ifTrue: [^ true].
>> > "quick"
>> >     self garbageCollect > self lowSpaceThreshold ifTrue: [^ true].
>>  "work
>> > harder"
>> >
>> >     ^ self confirm:
>> > 'WARNING: There is not enough space to start the low space watcher.
>> > If you proceed, you will not be warned again, and the system may
>> > run out of memory and crash. If you do proceed, you can start the
>> > low space notifier when more space becomes available simply by
>> > opening and then closing a debugger (e.g., by hitting Cmd-period.)
>> > Do you want to proceed?'
>> >
>> >
>> > Since both of the first answers false because, of course
>> garbageCollectMost
>> > and garbageCollect are negative....
>> > then I have that poup all the time.
>> >
>> > To fix this I have to posibilities:
>> >
>> > 1) Just patch this particular method to:
>> >
>> > self garbageCollectMost.
>> > self primBytesLeft > self lowSpaceThreshold ifTrue: [^ true].  "quick"
>> > self garbageCollect
>> > self primBytesLeft > self lowSpaceThreshold ifTrue: [^ true].  "work
>> harder"
>> >
>> > Notice that primBytesLeft is answering correct. Wait..I don't know if
>> > correct, but at least possitive:  5691396
>> > I think this is possitive because the primitive is not receiving a
>> > parameter, and thus, Interpreter >> primitiveBytesLeft
>> > evaluates the first part of the method, which just does self sizeOfFree:
>> > freeBlock , and not the second part where it does self bytesLeft: aBool.
>> >
>> > 2) understand why it is negative and fix it from the VM side (I have no
>> idea
>> > how to do this).
>> >
>> > Now, in addition, I wonder if there may be other places broken because
>> of
>> > this....I am having some crashed and I don't know why :(
>> >
>> > Thanks in advance,
>> >
>> > Mariano
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101201/18110165/attachment.htm


More information about the Vm-dev mailing list