You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
These calls are used in every VirtualThread transition, #17372 added FastJNI support to reduce the need of transition from JIT to VM. As these are only useful for synchronization when a JVMTI agent is attached, VM should detect if such path are actually used and avoid calling such if possible.
As a prototype, we should detect if JVMTI agent is attached, or allowed to attach during runtime (-XX:+EnableDynamicAgentLoading). if neither apply, then VM should skip the execution of these code and directly return.
The text was updated successfully, but these errors were encountered:
structJ9JavaVM {
...
BOOLEAN agentEnabled;
}
// during vm init:if ("-XX:-EnableDynamicAgentLoading" && "no agent attached on startup") {
vm->agentEnabled = false;
} else {
vm->agentEnabled = true;
}
// javanextvmiJVM_VirtualThreadMountBegin(...) { // same apply to unmount & endif (vm->agentEnabled) {
// execute original work
}
}
agentEnabled can also be implemented as a vm flag if available. hideframes(...) will need to be verified if it have effect for non-jvmti related code, if it does, then that can not be skipped.
These calls are used in every VirtualThread transition, #17372 added FastJNI support to reduce the need of transition from JIT to VM. As these are only useful for synchronization when a JVMTI agent is attached, VM should detect if such path are actually used and avoid calling such if possible.
As a prototype, we should detect if JVMTI agent is attached, or allowed to attach during runtime (
-XX:+EnableDynamicAgentLoading
). if neither apply, then VM should skip the execution of these code and directly return.The text was updated successfully, but these errors were encountered: