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