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