RFR: 8229012: When single stepping, the debug agent can cause the thread to remain in interpreter mode after single stepping completes [v2]

Serguei Spitsyn sspitsyn at openjdk.org
Fri Jan 24 11:54:47 UTC 2025


On Thu, 23 Jan 2025 16:50:07 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

>> When doing a  STEP_OVER, the debug agent does a NotifyFramePop() on the current frame as a safety net. After the STEP_OVER completes, the NotifyFramePop() is usually still in place. This keeps the thread in interp_only mode, which hurts performance. JVMTI has added a new ClearAllFramePops() API to allow clearing of the NotifyFramePop() and normal performance to resume.
>> 
>> Testing:
>> 
>> - [x] Tier1 CI
>> - [x] Tier2 CI svc testing
>> - [x] Tier3 CI svc testing
>> - [x] Tier5 CI svc testing
>> - [x] ran all svc test 10 times each on all supported platforms
>
> Chris Plummer has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Some minor cleanup.

Marked as reviewed by sspitsyn (Reviewer).

src/jdk.jdwp.agent/share/native/libjdwp/stepControl.c line 913:

> 911: 
> 912:         if (needsSuspending) {
> 913:             tty_message("clearStep: suspending thread");

Nit: This `tty_message()` is still here. Should it be at least under `#ifdef DEBUG`?

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

PR Review: https://git.openjdk.org/jdk/pull/23182#pullrequestreview-2572446675
PR Review Comment: https://git.openjdk.org/jdk/pull/23182#discussion_r1928565847


More information about the serviceability-dev mailing list