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

Thomas Schatzl thomas.schatzl at oracle.com
Thu Apr 28 15:30:41 UTC 2016


Hi Mikael,

On Thu, 2016-04-28 at 16:41 +0200, Mikael Gerdin wrote:
> 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);
> +  }
> 

  thanks for your review. Removed the scope in the current webrev.

Thanks,
  Thomas



More information about the hotspot-gc-dev mailing list