RFR (M): 8153507: Improve Card Table Clear Task

Mikael Gerdin mikael.gerdin at oracle.com
Thu Apr 28 14:41:27 UTC 2016


Hi Thomas,

On 2016-04-28 13:15, Thomas Schatzl wrote:
> Hi all,
>
>    during performance measurements of the Card Table Clear task it has
> been shown that the current way of distributing work is way too fine
> grained. Threads are stalling most of the time on the atomic cmpxchg
> during work distribution instead of doing work.
>
> This change tries to fix this by changing the way how the "dirty"
> regions are stored from a single linked list to a set of region
> indices, where the usual claim-by-chunks technique can be applied.
>
> Further using we can effectively limit the number of threads used by
> the API introduced by JDK-8155232.
>
> Third, by reorganizing the code into the g1RemSet files, clutter across
> the g1 code is minimized.
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8153507
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8153507/webrev/

Overall looks good,

in g1RemSet.cpp, do you really need the scope here?
+  {
+    double start = os::elapsedTime();
+    _scan_state->clear_card_table(_g1->workers());
+    phase_times->record_clear_ct_time((os::elapsedTime() - start) * 
1000.0);
+  }


/Mikael

> Testing:
> jprt, vm.gc testlist
>
> Thanks,
>    Thomas
>
>
>


More information about the hotspot-gc-dev mailing list