RFR (S): 8049341: Parallelize clearing the next mark bitmap
Mikael Gerdin
mikael.gerdin at oracle.com
Fri Aug 29 11:04:18 UTC 2014
Hi Marcus,
On 2014-08-28 13:06, Marcus Larsson wrote:
> Hi,
>
> I would like reviews for the following patch to parallelize the clearing
> of the next mark bitmap in G1.
>
> Short summary:
> The heap is divided into as many parts as there are workers and each
> worker will clear its corresponding part of the bitmap. Workers will
> join the suspendible thread set instead of the concurrent mark thread to
> properly allow them to yield during clearing work. Added support for
> applying heap region closures to a specific part of the heap.
> SPECjbb2013 shows a slight performance gain with this change (4%, using
> 4 concurrent threads).
>
> Webrev:
> http://cr.openjdk.java.net/~brutisso/webrev-8049341/
In g1Collectedheap.cpp
2624 void
2625 G1CollectedHeap::heap_region_par_iterate_chunked(HeapRegionClosure* cl,
2626 uint worker_id,
2627 uint num_workers,
2628 jint claim_value)
const {
2629 _hrs.par_iterate(cl, worker_id, num_workers, claim_value);
2630 }
2631
2632 void
2633 G1CollectedHeap::heap_region_iterate_range(HeapRegionClosure* cl,
uint start, uint end) const {
2634 _hrs.iterate_range(cl, start, end);
2635 }
Can you change heap_region_par_iterate_chunked to have the return type
on the same line as the name instead of making heap_region_iterate_range
copy its style? All surrounding methods follow that convention.
Otherwise I think the change looks good.
/Mikael
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8049341
>
> Testing:
> jprt, SPECjbb2013, SPECjbb2005, SPECjvm2008
>
> Thanks,
> Marcus
More information about the hotspot-gc-dev
mailing list