RFR: 8233343: Deprecate -XX:+CriticalJNINatives flag which implements Java…

Martin Doerr mdoerr at openjdk.java.net
Tue Oct 20 20:58:11 UTC 2020


On Tue, 20 Oct 2020 12:46:29 GMT, Robbin Ehn <rehn at openjdk.org> wrote:

>> This change deprecates the -XX:+CriticalJNINatives flag and removes the develop flag -XX:+StressCriticalJNINatives.
>> See CSR for more details.
>> This change also removes the lazy GC lock in the critical native transition, and runs the critical native function as
>> thread_in_Java.  I add a safepoint check at the end of the native function and transition to native and poll again for
>> the safepoint after the function if a safepoint is requested.  Tested with tier 1-6 (we have a few tests that use
>> this).  And built on linux-x86-open,linux-s390x-open,linux-arm32-debug,linux-ppc64le-debug.
>
> Thanks you @coleenp!
> Looks good, really nice delta of -800 LOC !

Makes sense to me. But I have a couple of remarks/suggestions:
- Object pinning for T_ARRAY on x86 shouldn't be needed any more since we stay in _thread_in_Java
- Transition to _thread_in_native is pointless if we transition to _thread_in_native_trans immediately afterwards
- I think the tests should also run on os.arch=="ppc64" | os.arch=="ppc64le" | os.arch=="s390x", but we should
  double-check if they really work
Thanks for taking care of all platforms!

-------------

PR: https://git.openjdk.java.net/jdk/pull/764


More information about the hotspot-dev mailing list