[15] RFR 8237963: Shenandoah: Heap iteration should use single-threaded string dedup oops_do_slow()

Zhengyu Gu zgu at redhat.com
Tue Jan 28 19:12:04 UTC 2020


Correction:

Updated webrev:
http://cr.openjdk.java.net/~zgu/JDK-8237963/webrev.01/index.html

Thanks,

-Zhengyu


On 1/28/20 2:03 PM, Zhengyu Gu wrote:
> Sorry, the early fix is incorrect.
> 
> Concurrent string dedup cleaning task may change string dedup 
> table/queue structures, that makes it unsafe for heap iteration to walk 
> them concurently.
> 
> Instead, heap iteration should use concurrent version, to block out each 
> other.
> 
> Updated webrev: 
> http://cr.openjdk.java.net/~zgu/JDK-8237963/webrev.00/index.html
> 
> Also changed bug synopsis to:
> 
> Shenandoah: Heap iteration should use concurrent version of string dedup 
> roots
> 
> Test:
>      gc/shenandoah/jvmti/TestHeapDump.java test with
>     -XX:+UseStringDeduplication (fastdebug and release) on x86_64 Linux.
>     in loop with 10 iterations.
> 
> Thanks,
> 
> -Zhengyu
> 
> On 1/28/20 10:34 AM, Zhengyu Gu wrote:
>> Please review this patch that uses single-threaded string dedup's 
>> oops_do() implementation for heap iteration.
>>
>> The bug was reported by SAP on Windows, but it is not Windows 
>> specific. The bug is due to heap iteration uses parallel version of 
>> string dedup's oops_do() implementation, which can interfere 
>> concurrent string dedup cleaning task.
>>
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8237963
>> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8237963/webrev.00/index.html
>>
>> Test:
>>     gc/shenandoah/jvmti/TestHeapDump.java test with 
>> -XX:+UseStringDeduplication (fastdebug and release) on x86_64 Linux.
>>
>> Thanks,
>>
>> -Zhengyu



More information about the shenandoah-dev mailing list