[Vm-dev] 32bit clean VM work.
John M McIntosh
johnmci at smalltalkconsulting.com
Sun Jun 10 18:02:23 UTC 2007
Well follow the instructions to build a unix VM.
At the point where you use VMMaker to make the VM ensure you go to
Mac OS/vm/specialChangeSets and load
ArraysToGlobalStruct-JMM.1.cs May already be in image, check source.
VMM38-64bit-imageUpdates.1.cs May already be in image, check source.
VMM38-gc-instrument-image.1.cs May already be in image, check source.
For 64bit work no idea, wasn't there some issue with fixes needed to
build it anyway?
Once the VM is build to test I suggest you look at the call to mmap
in the unix memory allocation source sqUnixMemory.c
and set the start location from zero to say 1.5GB, then startup your
VM and ask for 600MB of memory. In uxGrowMemoryBy look at the
value for heap + heapSize to see where the heap ends to ensure your
choices are correct.
I then downloaded a 3.5 image since it contains the macrobenchmarks,
| suck |
suck := OrderedCollection new.
suck add: (ByteArray new: 1024*1024*480).
97 timesRepeat: [
suck add: (ByteArray new: 1024*1024*1).
Transcript show: Smalltalk garbageCollectMost;cr.
Transcript show: Smalltalk garbageCollect;cr].
By adjust the 1024*1024*480) you want to put the entire active vm
memory heap under the 2GB boundary, then the timesRepeat: loop
allocates memory and
runs the benchmarks to cross over the boundary. Modifications,
using a smaller value for 1024*1024*1, really this should be 4 bytes
in order to march over the boundary in more possible conditions
however running it would require on the order of 4 million
iterations. Maybe someone could devote a week and run with a 4K
As mentioned earlier
I have not tested 64bit VMs at the 0x8000000000000000 boundary. I
suspect you could allocate at the 0x7FFFFFFFF0000000 Then ask for
600MB of memory for the image. That would set the end of memory at
0x8000000015800000, 344MB over the negative sign boundary, adjusting
the initial memory allocation to find the boundary.
The other two test cases are the image below the 2gb boundary, which
should be the first couple of running benchmarks for the VM, and the
VM fully over the 2GB boundary which can be set by adjust mmap to say
On Jun 10, 2007, at 3:21 AM, Damien Cassou wrote:
> 2007/6/10, John M McIntosh <johnmci at smalltalkconsulting.com>:
>> (c) I have not confirmed the changes work with the Unix VM, or the
>> Windows VM, I have no plans to do so.
> What can we do to test the unix vm?
> Damien Cassou
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
More information about the Vm-dev