RFR (S) 8231410: Shenandoah: clone barrier should use base pointer
Roman Kennke
rkennke at redhat.com
Wed Sep 25 11:53:05 UTC 2019
I'd suggest passing the interior ptrs and length too, and copy only the
payload (avoids touching the src-size and src/dst headers):
http://cr.openjdk.java.net/~rkennke/JDK-8231410/webrev.03/
Passes TestClone 32bit here. Will also run both 64/32bit
hotspot_gc_shenandoah now.
Roman
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8231410
>
> This is reproducible with x86_32, but the bug is generic, introduced by JDK-8231086.
> ShenandoahRuntime::shenandoah_clone_barrier expects src to be the base pointer for the clone barrier
> to act. C2, however, passes in the interior ptrs to the object contents. This leads to crashes, but
> surprisingly only on x86_32.
>
> Fix:
> https://cr.openjdk.java.net/~shade/8231410/webrev.02/
>
> Testing: {x86_32, x86_64, aarch64} hotspot_gc_shenandoah; new regression test
>
More information about the shenandoah-dev
mailing list