RFR: 8320652: ThreadInfo.isInNative needs to be updated to say what executing native code means [v2]
Bernd
duke at openjdk.org
Mon Nov 27 20:41:08 UTC 2023
On Sat, 25 Nov 2023 07:32:20 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
>> Alan Bateman has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
>>
>> - Change link to downcallHandle
>> - Merge
>> - Simplify wording
>> - Merge
>> - Initial commit
>
> src/java.management/share/classes/java/lang/management/ThreadInfo.java line 552:
>
>> 550: * java.lang.invoke.MethodHandle method handle} obtained from the
>> 551: * {@linkplain java.lang.foreign.Linker native linker}.
>> 552: *
>
> This area is new to me, but I happened to be in this code few days back. I'm mostly curious on what the actual definition of a thread being in native means.
> When a thread is executing any of the following, does it end up being considered as being in a "native method":
>
> - A syscall (for example, `write()`)
> - A C function exposed by a platform specific library
> - A JNI method (either part of the JDK or the application) which then may or may not do any syscall or C function call on a platform specific library
I would agree, it should state if runtime functions (including those doing a syscall) will be counted here. (For JNi i would not need it to be spelled out, on the other hand it would help, since it makes clear we don’t mean c2 code)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16791#discussion_r1406716462
More information about the serviceability-dev
mailing list