[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