RFR (M): 8233919: Incrementally calculate the occupied cards in a heap region remembered set
Thomas Schatzl
thomas.schatzl at oracle.com
Thu Nov 21 10:41:53 UTC 2019
Hi,
On 20.11.19 11:42, Stefan Johansson wrote:
> Hi Thomas,
>
> On 2019-11-12 16:24, Thomas Schatzl wrote:
>> Hi all,
>>
>> may I have reviews for this change that ultimately makes sure that
>> the number of occupied cards in a remembered set is only growing by
>> providing a per-OtherRegionsTable count that is atomically updated
>> when adding a remembered set entry.
>>
>> Note that this count may not be completely accurate due to races when
>> deleting a PerRegionTable (which is a known issue) from an
>> OtherRegionsTable; but that is no different than before.
>>
>> This helps improving the predictions in the young gen remset sampling
>> thread, and increase the performance of getting the occupancy count.
>>
>> Based on JDK-8233997, and JDK-8233998 also out for review.
>>
>> CR:
>> https://bugs.openjdk.java.net/browse/JDK-8233919
>> Webrev:
>> http://cr.openjdk.java.net/~tschatzl/8233919/webrev/
> I like this change and it looks good in general, just one small comment:
> src/hotspot/share/gc/g1/heapRegionRemSet.cpp
> ---
> 247 bool added = prt->add_reference(from);
> 248 Atomic::add(num_added_by_coarsening + (added ? 1 : 0),
> &_num_occupied, memory_order_relaxed);
>
> I would prefer:
> if (prt->add_reference(from)) {
> num_added_by_coarsening++;
> }
> Atomic::add...
>
> I you disagree, leave it as is.
Fixed in
http://cr.openjdk.java.net/~tschatzl/8233919/webrev.0_to_1/
http://cr.openjdk.java.net/~tschatzl/8233919/webrev.1/
Thanks for your review,
Thomas
More information about the hotspot-gc-dev
mailing list