RFR (XS): 8164948: Initializing stores of HeapRegions are not ordered with regards to its use in G1ConcurrentMark
sangheon.kim at oracle.com
Mon Sep 12 17:11:03 UTC 2016
On 09/12/2016 12:17 AM, Thomas Schatzl wrote:
> Hi all,
> On Fri, 2016-09-09 at 06:01 -0700, Thomas Schatzl wrote:
>> Hi all,
>> StefanJ had an initial look and commented about the removal of the
>> reinitialization of the HeapRegion in heapRegion.cpp, i.e. that this
>> still necessary.
>> He is right, I updated the webrev at
>> http://cr.openjdk.java.net/~tschatzl/8164948/webrev.1 (full)
>> http://cr.openjdk.java.net/~tschatzl/8164948/webrev.0_to_1 (diff)
>> Analysis of the new version shows that this will not cause any
>> additional issues: the effect is that (like before the previous
>> webrev, and before finding this issue), the marking thread will just
>> scan the next bitmap occupied by the region unnecessarily (it will
>> not find any mark, this is correct because that region has been
>> allocated after mark start, and those are always(tm) kept live).
>> This is true because G1 only uncommits the region and the associated
>> auxiliary data at full gc, which will cancel all marking.
>> I.e. the original problem had been that since we got a TAMS value for
>> the region that was outside the region, we scanned into non-committed
>> I will do some more testing with a new build though.
> ~3200 successful runs of the test later, still no problem with the
Thank you for the update.
The patch looks good, thanks for fixing this.
The copyright of heapRegionManager.cpp can be updated if you care about it.
More information about the hotspot-gc-dev