[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:03:34 UTC 2020
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