RFR: Fix ShFreeSet boundary case
Roman Kennke
rkennke at redhat.com
Wed May 9 19:30:41 UTC 2018
In ShFreeSet, if we steal a region from 'the other' set, and then
immediately allocate a region-sized object (e.g. a LAB), the region gets
retired and taken out of any of the two allocator/mutator free sets.
However, right afterwards, the region gets added to the set again. When
that happens, it will run into the assert at the start of
ShFreeSet::try_allocate_in() l168. Observed with the new PLAB code.
Apparently this triggers the situation fairly often because it tends to
allocate region sized GCLABs.
http://cr.openjdk.java.net/~rkennke/fixfreeset/webrev.00/
Testing: hotspot_gc_dev (with PLAB patch) ok
Roman
More information about the shenandoah-dev
mailing list