RFR (M): 8233919: Incrementally calculate the occupied cards in a heap region remembered set
Stefan Johansson
stefan.johansson at oracle.com
Wed Nov 20 10:42:02 UTC 2019
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.
---
Thanks,
Stefan
> Testing:
> hs-tier1-5,
>
> Thanks,
> Thomas
More information about the hotspot-gc-dev
mailing list