RFR (M): 8153507: Improve Card Table Clear Task
Jon Masamitsu
jon.masamitsu at oracle.com
Thu Apr 28 20:18:51 UTC 2016
http://cr.openjdk.java.net/~tschatzl/8153507/webrev/src/share/vm/gc/g1/g1RemSet.cpp.frames.html
IsDirtyRegionState will probably always be a jbyte
161 memset(_in_dirty_region_buffer, Clean, _max_regions * sizeof(jbyte));
but maybe this would be appropriate
161 memset(_in_dirty_region_buffer, Clean, _max_regions *
sizeof(IsDirtyRegionState));
_cur_dirty_regions is the index of a single region, yes? So the
singular form _cur_dirty_region
is more accurate?
Rest looks good.
My two points are minor so I don't need to see a new webrev (and
by inference, you can decide which way to go on both).
Jon
On 04/28/2016 04:15 AM, 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/
> Testing:
> jprt, vm.gc testlist
>
> Thanks,
> Thomas
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20160428/61ecee57/attachment.htm>
More information about the hotspot-gc-dev
mailing list