[jdk19] RFR: 8290562: ThreadMXBean.getThread{Cpu, User}Time fails with -XX:-VMContinuations
Kevin Walls
kevinw at openjdk.org
Wed Aug 3 10:29:00 UTC 2022
On Mon, 1 Aug 2022 09:16:41 GMT, Alan Bateman <alanb at openjdk.org> wrote:
> ThreadMXBean.getThread{Cpu,User}Time is specified to return -1L when invoked with the id of a virtual thread. This isn't so when running with -XX:-VMContinuations (or ports without support for continuations in the VM) as it returns the cpu/user time of the OS thread that that the virtual thread is bound. A small oversight with JDK-8287496, and missed because our unit test only exercises these methods with the id of the "current virtual thread". The code path when the called with the id that is not the current thread is a different code path.
>
> The change is limited to jmm_GetThreadCpuTimeWithKind. I didn't change jmm_GetThreadCpuTimesWithKind because it seems to be unused/dead code. I'll create a separate issue to look at that (it doesn't need to be removed/changed for JDK 19).
>
> The test case for this API is expanded to cover more cases where the current thread is special cased in the implementation.
>
> JDK 19 is in RDP2 so this change will require additional approval.
Marked as reviewed by kevinw (Committer).
test/jdk/java/lang/management/ThreadMXBean/VirtualThreads.java line 111:
> 109:
> 110: /**
> 111: * Test that ThreadMXBean.getThreadInfo(long) with the thread id of a carrier thread.
Pre-existing typo: this comment sentence looks truncated? Or maybe just remove "that" and it's fine:
"Test ThreadMXBean.getThreadInfo(long) with.."
-------------
PR: https://git.openjdk.org/jdk19/pull/157
More information about the serviceability-dev
mailing list