RFR (S): 8179679: Rearrange filters before card scanning

Stefan Johansson stefan.johansson at oracle.com
Thu Jul 6 08:46:15 UTC 2017



On 2017-07-06 10:06, Erik Helin wrote:
> Hi Thomas,
>
> looks good to me, Reviewed.
+1

Nice cleanup,
StefanJ
> Thanks,
> Erik
>
> On 07/04/2017 05:42 PM, Thomas Schatzl wrote:
>> Hi all,
>>
>> On Mon, 2017-07-03 at 13:24 +0200, Thomas Schatzl wrote:
>>>   Hi all,
>>>   
>>>     please have a look at this change that rearranges the checks in the
>>>   G1RemSet card scanning a bit in order to:
>>>   
>>   Erik had a look at this change with the following comments:
>>
>> - rename card_region_idx -> region_idx_for_card
>> - factor out the two calls to claim a card and dirty its region into a
>> method
>> - move calculation of "card_region" into the scan_card() method.
>> - he pointed out that the change can use G1CollectedHeap::region_at()
>> instead of G1CollectedHeap::heap_region_containing() as it is simpler.
>> - there has been another comment on why the change claims the card
>> after checking whether the card is within the region's boundaries, and
>> if that wouldn't be better performed right after the is_claimed check.
>>
>> Doing so will claim cards originating from stray remembered set entries
>> into the current survivor regions as claimed, since we do not clear
>> these regions later again (see G1ClearCardTableTask::work()) - their
>> cards need to be "Young", and this is done during allocation of the
>> region.
>>
>> This results in the card table verification to fail later.
>>
>> I think if we should think of changing the handling of survivor regions
>> during the clear CT phase as part of a different CR. For now I added a
>> comment.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~tschatzl/8179679/webrev.1_to_2 (diff)
>> http://cr.openjdk.java.net/~tschatzl/8179679/webrev.2 (full)
>> Testing:
>> gcbasher
>>
>> Thanks,
>>    Thomas
>>




More information about the hotspot-gc-dev mailing list