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

Erik Helin erik.helin at oracle.com
Thu Jul 6 08:06:25 UTC 2017


Hi Thomas,

looks good to me, Reviewed.

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