RFR (XS): 8164948: Initializing stores of HeapRegions are not ordered with regards to its use in G1ConcurrentMark
Stefan Johansson
stefan.johansson at oracle.com
Mon Sep 12 07:46:36 UTC 2016
Hi Thomas,
On 2016-09-12 09:17, 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
>> is
>> 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
>> areas.
>>
>> I will do some more testing with a new build though.
> ~3200 successful runs of the test later, still no problem with the
> change.
Sound great, change looks good,
StefanJ
> Thanks,
> Thomas
>
More information about the hotspot-gc-dev
mailing list