The Trunk: SystemReporter-eem.22.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: SystemReporter-eem.22.mcz

commits-2
Eliot Miranda uploaded a new version of SystemReporter to project The Trunk:
http://source.squeak.org/trunk/SystemReporter-eem.22.mcz

==================== Summary ====================

Name: SystemReporter-eem.22
Author: eem
Time: 26 June 2014, 3:22:57.793 pm
UUID: 82c32c7a-dcc0-40fe-9199-3d89b4283f19
Ancestors: SystemReporter-ul.21

Bring the wonderful SystemReporter up-to-date w.r.t. Cog and Spur.

=============== Diff against SystemReporter-ul.21 ===============

Item was changed:
  ----- Method: SystemReporter>>reportVMParameters: (in category 'reporting') -----
  reportVMParameters: aStream
+ | vmParameters isCog isSpur |
- | vmParameters |
  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'
- #(
- 1 'end of old-space (0-based, read-only)'
- 2 'end of young-space (read-only)'
- 3 'end of memory (read-only)'
- 4 'allocationCount (read-only)'
- 5 'allocations between GCs (read-write)'
- 6 'survivor count tenuring threshold (read-write)'
- 7 'full GCs since startup (read-only)'
- 8 'total milliseconds in full GCs since startup (read-only)'
- 9 'incremental GCs since startup (read-only)'
- 10 'total milliseconds in incremental GCs since startup (read-only)'
- 11 'tenures of surving objects since startup (read-only)'
- 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'
- 21 'root table size (read-only)'
- 22 'root table overflows since startup (read-only)'
  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)')])
+ 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]!
- 24 'memory threshold above which shrinking object memory (rw)'
- 25 'memory headroom when growing object memory (rw)'
- 26  'interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image  is not calling getNextEvent often (rw)'
- 27 'number of times mark loop iterated for current IGC/FGC (read-only) includes ALL marking'
- 28 'number of times sweep loop iterated  for current IGC/FGC (read-only)'
- 29 'number of times make forward loop iterated for current IGC/FGC (read-only)'
- 30 'number of times compact move loop iterated for current IGC/FGC (read-only)'
- 31 'number of grow memory requests (read-only)'
- 32 'number of shrink memory requests (read-only)'
- 33 'number of root table entries used for current IGC/FGC (read-only)'
- 34 'number of allocations done before current IGC/FGC (read-only)'
- 35 'number of survivor objects after current IGC/FGC (read-only)'
- 36  'millisecond clock when current IGC/FGC completed (read-only)'
- 37  'number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC (read-only)'
- 38  'milliseconds taken by current IGC  (read-only)'
- 39  'Number of finalization signals for Weak Objects pending when current IGC/FGC completed (read-only)'
- 40  'VM word size - 4 or 8 (read-only)'
- ) pairsDo: [:idx :desc |
- aStream
- nextPut: $#;
- nextPutAll: idx printString;
- tab;
- nextPutAll: (vmParameters at: idx) printString;
- tab;
- nextPutAll: desc;
- cr]!