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