RFR: 8378194: Protect process_pending_interp_only() work with JvmtiThreadState_lock

Leonid Mesnik lmesnik at openjdk.org
Sat Feb 21 05:13:09 UTC 2026


On Wed, 18 Feb 2026 19:50:11 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

> The function `JvmtiThreadState::process_pending_interp_only()` should protect the check with `state->is_pending_interp_only_mode()` and call to `JvmtiEventController::enter_interp_only_mode(state)` with the `JvmtiThreadState_lock`. Some level of optimization with a check of `seen_interp_only_mode()` is used as the code path of the `process_pending_interp_only()` is hot. Then the `seen_interp_only_mode()` has to be set somewhat earlier when the `is_pending_interp_only_mode()` is set.
> This issue was discovered when in the work on the PR update of https://bugs.openjdk.org/browse/JDK-8373367 .
> 
> Testing:
>  - TBD: mach5 tiers 1-5

Changes requested by lmesnik (Reviewer).

src/hotspot/share/prims/jvmtiThreadState.hpp line 216:

> 214:   bool is_pending_interp_only_mode() { return _pending_interp_only_mode; }
> 215:   void set_pending_interp_only_mode(bool val) {
> 216:     _seen_interp_only_mode = true;

_seen_interp_only_mode is read without and locking and should be atomic.

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

PR Review: https://git.openjdk.org/jdk/pull/29800#pullrequestreview-3835057915
PR Review Comment: https://git.openjdk.org/jdk/pull/29800#discussion_r2835842732


More information about the serviceability-dev mailing list