VM Maker: VMMaker.oscog-eem.2244.mcz

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

VM Maker: VMMaker.oscog-eem.2244.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2244.mcz

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

Name: VMMaker.oscog-eem.2244
Author: eem
Time: 21 June 2017, 10:52:20.520862 am
UUID: 2cb680ae-4bf6-40dd-9130-d766a3c3f1e5
Ancestors: VMMaker.oscog-eem.2243

Spur: Fix regression in VMMaker.oscog-eem.2237.  sufficientSpaceAfterGC: must compute heapSizePostGC using totalOldSpaceCapacity instead of the old broken segment-insensitive endOfmemory - nilObj, otherwise as soon as a segment is added its quite possible that there will be a full GC after each scavenge.

=============== Diff against VMMaker.oscog-eem.2243 ===============

Item was changed:
  ----- Method: SpurMemoryManager>>sufficientSpaceAfterGC: (in category 'gc - scavenging') -----
  sufficientSpaceAfterGC: numBytes
  "This is ObjectMemory's funky entry-point into its incremental GC,
  which is a stop-the-world a young generation reclaimer.  In Spur
  we run the scavenger.  Answer if space is not low."
 
  | heapSizePostGC |
  self assert: numBytes = 0.
  self scavengingGCTenuringIf: TenureByAge.
+ heapSizePostGC := segmentManager totalOldSpaceCapacity - totalFreeOldSpace.
- heapSizePostGC := endOfMemory - nilObj - totalFreeOldSpace.
  (heapSizePostGC - heapSizeAtPreviousGC) asFloat / heapSizeAtPreviousGC >= heapGrowthToSizeGCRatio ifTrue:
  [self fullGC].
  [totalFreeOldSpace < growHeadroom
  and: [(self growOldSpaceByAtLeast: 0) notNil]] whileTrue:
  [totalFreeOldSpace >= growHeadroom ifTrue:
  [^true]].
  lowSpaceThreshold > totalFreeOldSpace ifTrue: "space is low"
  [lowSpaceThreshold := 0. "avoid signalling low space twice"
  ^false].
  ^true!