RFR: 8348203: [JVMCI] Make eager JVMCI initialization observable in the debugger
Doug Simon
dnsimon at openjdk.org
Fri Jan 24 12:15:47 UTC 2025
On Tue, 21 Jan 2025 16:59:05 GMT, Volker Simonis <simonis at openjdk.org> wrote:
> I realized that I can't debug (i.e. with a Java debugger) the Graal compiler initialization if it happens eagerly (e.g. with `EagerJVMCI`, `JVMCIPrintProperties`, `JVMCILibDumpJNIConfig`). Not that this is something I need every day, but I think it can easily be fixed by moving the early initializing a little further down, right after `JvmtiExport::post_vm_initialized()`:
>
>
> diff --git a/src/hotspot/share/runtime/threads.cpp b/src/hotspot/share/runtime/threads.cpp
> index 1cab9bc5d53..191409c22e3 100644
> --- a/src/hotspot/share/runtime/threads.cpp
> +++ b/src/hotspot/share/runtime/threads.cpp
> @@ -806,12 +806,6 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
> }
> #endif
>
> -#if INCLUDE_JVMCI
> - if (force_JVMCI_initialization) {
> - JVMCI::initialize_compiler(CHECK_JNI_ERR);
> - }
> -#endif
> -
> if (NativeHeapTrimmer::enabled()) {
> NativeHeapTrimmer::initialize();
> }
> @@ -826,6 +820,12 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
> // Notify JVMTI agents that VM initialization is complete - nop if no agents.
> JvmtiExport::post_vm_initialized();
>
> +#if INCLUDE_JVMCI
> + if (force_JVMCI_initialization) {
> + JVMCI::initialize_compiler(CHECK_JNI_ERR);
> + }
> +#endif
> +
> JFR_ONLY(Jfr::on_create_vm_3();)
>
> #if INCLUDE_MANAGEMENT
Marked as reviewed by dnsimon (Reviewer).
Since this is the non-default mode of execution (JVMCI initialization is normally lazy as Volker pointed out), I think this change is fine.
-------------
PR Review: https://git.openjdk.org/jdk/pull/23219#pullrequestreview-2572488639
PR Comment: https://git.openjdk.org/jdk/pull/23219#issuecomment-2612383997
More information about the compiler-dev
mailing list