RFR (XL): Backport JDK9 Shenandoah to JDK8u

Roman Kennke rkennke at redhat.com
Wed Dec 7 13:08:17 UTC 2016


Am Mittwoch, den 07.12.2016, 13:12 +0100 schrieb Aleksey Shipilev:
> On 12/06/2016 10:24 PM, Roman Kennke wrote:
> > This huge change backports the current state of JDK9 (minus the
> > last
> > bunch of patches) to jdk8u:
> > 
> > http://cr.openjdk.java.net/~rkennke/backport-jdk8/webrev.00/
> 
> Spot-checking:
> 
> *) src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
> 
> These are not conditional for Shenandoah, do we hit these guarantees
> with other GCs?
> 
>   2032       guarantee(opr2->type() != T_OBJECT && opr2->type() !=
> T_ARRAY,
> "need acmp barrier?");
>   2033       guarantee(opr1->type() != T_OBJECT && opr1->type() !=
> T_ARRAY,
> "need acmp barrier?");

Nope, we don't. Should I remove them? FWIW those are the same as we
have in jdk9-shenandoah.


> *) src/share/vm/c1/c1_Runtime1.cpp
> 
> Bad indent:
> 
>   688 Handle h_obj(thread, obj);

Uh, I was reading 'bad intent' and didn't know what you mean ;-)
 Will fix it before pushing.

> 
> *) src/share/vm/memory/barrierSet.cpp
> 
> Why we moved BarrierSet::write_ref_array here? Was that the upstream
> jdk-9 move?

No, this was moved in jdk9-shenandoah because we made that method
virtual.



> *) src/share/vm/runtime/fieldDescriptor.hpp
> 
> Another leak from jdk-9?
> 
>   101   bool is_stable()                const    { return
> access_flags().is_stable(); }

No. We need it in c2 to identify stable fields. (no read-barrier
needed...)

> *) src/share/vm/runtime/os.hpp
> 
> Leak?
> 
>   56 class methodHandle;

No. It's used some lines down as methodHandle* and we're changing order
of includes and this is needed for compilation.

> *) src/share/vm/utilities/growableArray.hpp
> 
> Leak?
> 
>   30 #include "oops/oop.hpp"

No. We introduced some code that uses oopDesc::is_safe().

Ok to push after fixing the bad intent ;-)

Roman


More information about the shenandoah-dev mailing list