[Vm-dev] VM Maker: VMMaker.oscog-eem.2244.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jun 21 17:53:32 UTC 2017


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!



More information about the Vm-dev mailing list