Thanks David!
does the report look OK on the Interpreter VMs?
On Thu, Jun 26, 2014 at 4:07 PM, commits@source.squeak.org wrote:
David T. Lewis uploaded a new version of SystemReporter to project The Trunk: http://source.squeak.org/trunk/SystemReporter-dtl.23.mcz
==================== Summary ====================
Name: SystemReporter-dtl.23 Author: dtl Time: 26 June 2014, 7:07:41.163 pm UUID: 1becec2c-9df2-43f8-b6f3-374d5d490000 Ancestors: SystemReporter-eem.22
Fix missing ifFalse: for isCog in VM parameters
=============== Diff against SystemReporter-eem.22 ===============
Item was changed: ----- Method: SystemReporter>>reportVMParameters: (in category 'reporting') ----- reportVMParameters: aStream | vmParameters isCog isSpur | self header: 'Virtual Machine Parameters' on: aStream. vmParameters := Smalltalk vm getVMParameters. isCog := (vmParameters at: 41 ifAbsent: [0]) anyMask: 1. "determine Cog/Stack via bit 0, requires native float order." isSpur := isCog and: [(vmParameters at: 41 ifAbsent: [0]) anyMask: 2r10000]. "bit 16 is the Spur bit" (isSpur ifFalse: [#( 1 'size of old space' 2 'size of young+old space' 3 'size of memory')] ifTrue: [#( 1 'size of old space' 2 'size of new space' 3 'size of heap')]), (isSpur ifFalse: [#( 4 'allocationCount' 5 'allocations between GCs' 6 'survivor count tenuring threshold')] ifTrue: [#()]), #( 7 'full GCs since startup' 8 'total milliseconds in full GCs since startup'), (isSpur ifFalse: [#( 9 'incremental GCs since startup' 10 'total milliseconds in incremental GCs since startup')] ifTrue: [#( 9 'scavenging GCs since startup' 10 'total milliseconds in scavenging GCs since startup')]), #( 11 'tenures of surving objects since startup'), (isCog ifFalse: [#( 12 'specific to the translating VM' 13 'specific to the translating VM' 14 'specific to the translating VM' 15 'specific to the translating VM' 16 'specific to the translating VM' 17 'specific to the translating VM' 18 'specific to the translating VM' 19 'specific to the translating VM' 20 'specific to the translating VM')] ifTrue: [{12 to: 20. 'specific to the translating VM'}]), #( 21 'root table size' 22 'root table overflows since startup' 23 'bytes of extra memory to reserve for VM buffers, plugins, etc.' 24 'memory threshold above which shrinking object memory' 25 'memory headroom when growing object memory'), (isCog ifFalse: [#( 26 'interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image is not calling getNextEvent often')] ifTrue: [#( 26 'heartbeat period (ms)')]), (isSpur ifFalse: [#( 27 'number of times mark loop iterated for current IGC/FGC includes ALL marking' 28 'number of times sweep loop iterated for current IGC/FGC' 29 'number of times make forward loop iterated for current IGC/FGC' 30 'number of times compact move loop iterated for current IGC/FGC')] ifTrue: [#()]), #( 31 'number of grow memory requests' 32 'number of shrink memory requests'), (isSpur ifFalse: [#( 33 'number of root table entries used for current IGC/FGC' 34 'number of allocations done before current IGC/FGC' 35 'number of survivor objects after current IGC/FGC' 36 'millisecond clock when current IGC/FGC completed' 37 'number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC' 38 'milliseconds taken by current IGC ' 39 'Number of finalization signals for Weak Objects pending when current IGC/FGC completed')] ifTrue: [#( 36 'millisecond clock when current SGC/FGC completed' 38 'milliseconds taken by current SGC ' 39 'Number of finalization signals for Weak Objects pending when current SGC/FGC completed')]), #( 40 'VM word size - 4 or 8'),
(isCog
ifTrue:
[#(
41 'imageFormatVersion for the VM'
42 'number of stack pages in use'
43 'desired number of stack pages
(stored in image file header, max 65535)'
44 'size of eden, in bytes'
45 'desired size of eden, in bytes
(stored in image file header)'
46 'machine code zone size, in bytes'
47 'desired machine code zone size (0
=> default 1Mb)'
48 'various header flags. See
getCogVMFlags.'
49 'max size the image promises to
grow the external semaphore table to'),
(isSpur
ifFalse:
[{ 50 to: 54. 'reserved
for VM parameters that persist in the image (such as size of eden above)'.
55 to: 56. 'specific
to Spur' }]
ifTrue:
[{ 50 to: 53. 'reserved
for VM parameters that persist in the image (such as size of eden above)' },
#( 54
'total free old space'
55
'ratio of growth and image size at or above which a GC will be performed post scavenge')]),
#( 56 'number of process switches since
startup'
57 'number of ioProcessEvents calls
since startup'
58 'number of forceInterruptCheck
calls since startup'
59 'number of check event calls since
startup'
60 'number of stack page overflows
since startup'
61 'number of stack page divorces
since startup'
62 'compiled code compactions since
startup'
63 'total milliseconds in compiled
code compactions since startup'
64 'the number of methods that
currently have jitted machine-code'
65 'whether the VM supports
MULTIPLE_BYTECODE_SETS or not.'
66 'the byte size of a stack page'),
{ 67 to: 69. 'reserved for more
Cog-related info' },
#( 70 'the vmProxyMajorVersion (the
interpreterProxy VM_MAJOR_VERSION)'
71 'the vmProxyMinorVersion (the
interpreterProxy VM_MINOR_VERSION)')]
ifFalse:
[#()])
(isCog ifTrue:
[#(
41 'imageFormatVersion for the VM'
42 'number of stack pages in use'
43 'desired number of stack pages (stored in
image file header, max 65535)'
44 'size of eden, in bytes'
45 'desired size of eden, in bytes (stored in
image file header)'
46 'machine code zone size, in bytes'
47 'desired machine code zone size (0 =>
default 1Mb)'
48 'various header flags. See getCogVMFlags.'
49 'max size the image promises to grow the
external semaphore table to'),
(isSpur
ifFalse:
[{ 50 to: 54. 'reserved for VM
parameters that persist in the image (such as size of eden above)'.
55 to: 56. 'specific to Spur'
}]
ifTrue:
[{ 50 to: 53. 'reserved for VM
parameters that persist in the image (such as size of eden above)' },
#( 54 'total
free old space'
55 'ratio of
growth and image size at or above which a GC will be performed post scavenge')]),
#( 56 'number of process switches since startup'
57 'number of ioProcessEvents calls since
startup'
58 'number of forceInterruptCheck calls since
startup'
59 'number of check event calls since startup'
60 'number of stack page overflows since
startup'
61 'number of stack page divorces since
startup'
62 'compiled code compactions since startup'
63 'total milliseconds in compiled code
compactions since startup'
64 'the number of methods that currently have
jitted machine-code'
65 'whether the VM supports
MULTIPLE_BYTECODE_SETS or not.'
66 'the byte size of a stack page'),
{ 67 to: 69. 'reserved for more Cog-related
info' },
#( 70 'the vmProxyMajorVersion (the
interpreterProxy VM_MAJOR_VERSION)'
71 'the vmProxyMinorVersion (the
interpreterProxy VM_MINOR_VERSION)')]) pairsDo: [:idx :desc | | value values | aStream nextPut: $#. idx isInteger ifTrue: [value := vmParameters at: idx. aStream print: idx; tab; nextPutAll: ((value isInteger and: [idx ~= 41]) ifTrue: [value asStringWithCommas] ifFalse: [value printString])] ifFalse: [value := vmParameters at: idx first. aStream print: idx first; next: 2 put: $.; print: idx last; tab. values := idx collect: [:i| vmParameters at: i]. values asSet size = 1 ifTrue: [aStream print: value] ifFalse: [values do: [:v| aStream print: v] separatedBy: [aStream nextPutAll: ', ']]]. aStream tab; nextPutAll: desc; cr]!
On Thu, Jun 26, 2014 at 05:29:02PM -0700, Eliot Miranda wrote:
Thanks David!
does the report look OK on the Interpreter VMs?
Yes, it looks fine.
The Spur image looks good too. I plan to spend more time with it and report back if I spot any issues. Very good so far and definitely faster :-)
Dave
squeak-dev@lists.squeakfoundation.org