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