RFR: More efficient next bitmap resetting for traversal

Zhengyu Gu zgu at redhat.com
Mon Jul 16 15:52:39 UTC 2018



On 07/16/2018 11:44 AM, Zhengyu Gu wrote:
> Hi,
> 
> Looks wrong ...
> 
> 1) You passed in traversalSet iter, then re-creates traversalSet itr for 
> each worker, so you reset the regions n_workers times.
> 
Oops, my bad ... you do claim_next on passed in region iterator, that's 
correct.

Just remove
511     ShenandoahHeapRegionSetIterator iter(traversal_set);

-Zhengyu

> 2) Should grab heapLock in reset_next_mark_bitmap_traversal()
> 
> 
> Thanks,
> 
> -Zhengyu
> 
> 
> On 07/16/2018 11:33 AM, Roman Kennke wrote:
>> The resetting of next bitmap for traversal is a bit inefficient:
>> - It's iterating *all* regions, but then only picks traversal-set
>> regions. We can iterate traversal-set to begin with instead.
>> - It grabs the heap-lock for each region. Which basically serializes the
>> whole process for no good reason.
>>
>> http://cr.openjdk.java.net/~rkennke/better-traversal-reset-bitmaps/webrev.00/ 
>>
>>
>> Testing: tier3_gc_shenandoah
>>
>> Ok?
>>
>> Roman
>>


More information about the shenandoah-dev mailing list