RFR: 8288949: serviceability/jvmti/vthread/ContStackDepthTest/ContStackDepthTest.java failing

Ron Pressler rpressler at openjdk.org
Fri Jun 24 09:42:06 UTC 2022


Please review the following bug fix:

`Continuation.enterSpecial` is a generated special nmethod (albeit not a Java method), with a well-known frame layout that calls `Continuation.enter`.

Because it is compiled, it resolves the call to `Continuation.enter` to its compiled version, if available. But this results in the compiled `Continuation.enter` being called even when the thread is in interp_only_mode.

This change does three things:

1. When entering interp_only_mode, `Continuation::set_cont_fastpath_thread_state` will clear enterSpecial's resolved callsite to Continuation.enter.
2. In interp_only_mode, `SharedRuntime::resolve_static_call_C` will return `Continuation.enter`'s c2i entry rather than `verified_code_entry`.
3. In interp_only_mode, the c2i stub will not patch the callsite.

This fix isn't perfect, because a different thread, not in interp_only_mode, might patch the call. A longer-term solution is to create an "interpreted" version of `enterSpecial` and supporting an ad-hoc deoptimization. See https://bugs.openjdk.org/browse/JDK-8289128


Passes tiers 1-4 and Loom tiers 1-5.

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

Commit messages:
 - fix
 - Remove outdated comment
 - Unexclude test

Changes: https://git.openjdk.org/jdk19/pull/66/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk19&pr=66&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288949
  Stats: 55 lines in 9 files changed: 48 ins; 5 del; 2 mod
  Patch: https://git.openjdk.org/jdk19/pull/66.diff
  Fetch: git fetch https://git.openjdk.org/jdk19 pull/66/head:pull/66

PR: https://git.openjdk.org/jdk19/pull/66


More information about the hotspot-compiler-dev mailing list