RFR 8228532: Shenandoah: Implement SBSA::try_resolve_jobject_in_native()

Aleksey Shipilev shade at redhat.com
Wed Oct 30 17:02:15 UTC 2019


On 10/30/19 5:50 PM, Andrew Haley wrote:
> Has this bug been backported? How should we handle it?

JDK-8228532 is only in 14, it had not been backported.

> Suggested patch:
> 
> diff -r 6a05019acb67 src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp
> --- a/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp	Tue Sep 17 14:00:36 2019 -0400
> +++ b/src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp	Wed Oct 30 12:44:23 2019 -0400
> @@ -424,9 +448,12 @@
>    // Check for null.
>    __ cbz(obj, done);
> 
>    assert(obj != rscratch2, "need rscratch2");
> -  Address gc_state(rthread, in_bytes(ShenandoahThreadLocalData::gc_state_offset()));
> -  __ ldrb(rscratch2, gc_state);
> +  Address gc_state(jni_env, ShenandoahThreadLocalData::gc_state_offset() - JavaThread::jni_environment_offset());
> +  __ lea(rscratch2, gc_state);
> +  __ ldrb(rscratch2, Address(rscratch2));
> 
>    // Check for heap in evacuation phase
>    __ tbnz(rscratch2, ShenandoahHeap::EVACUATION_BITPOS, slowpath);

Yes, RFR that under new bug and link it to 8228532 :)

I think x86 does it correctly already:
  https://hg.openjdk.java.net/jdk/jdk/rev/db740ced41c4

-- 
Thanks,
-Aleksey




More information about the hotspot-gc-dev mailing list