RFR(M): 8227680: FastJNIAccessors: Check for JVMTI field access event requests at runtime
boris.ulasevich at bell-sw.com
Fri Jul 26 10:49:56 UTC 2019
Your change works Ok on arm32 with the minor correction. See the patch
On 16.07.2019 16:31, Doerr, Martin wrote:
> the current implementation of FastJNIAccessors ignores the flag -XX:+UseFastJNIAccessors when the JVMTI capability "can_post_field_access" is enabled.
> This is an unnecessary restriction which makes field accesses (Get<Type>Field) from native code slower when a JVMTI agent is attached which enables this capability.
> A better implementation would check at runtime if an agent actually wants to receive field access events.
> Note that the bytecode interpreter already uses this better implementation by checking if field access watch events were requested (JvmtiExport::_field_access_count != 0).
> I have implemented such a runtime check on all platforms which currently support FastJNIAccessors.
> My new jtreg test runtime/jni/FastGetField/FastGetField.java contains a micro benchmark:
> shows the duration of 10000 iterations with and without UseFastJNIAccessors (JVMTI agent gets attached in both runs).
> My Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz needed 4.7ms with FastJNIAccessors and 11.2ms without it.
> We have run the test on 64 bit x86 platforms, SPARC and aarch64.
> (FastJNIAccessors are not yet available on PPC64 and s390. I'll contribute them later.)
> My webrev contains 32 bit implementations for x86 and arm, but completely untested. It'd be great if somebody could volunteer to review and test these platforms.
> Please review.
> Best regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1109 bytes
Desc: not available
More information about the hotspot-runtime-dev