On Tue, 30 Nov 2021 10:47:55 GMT, Aleksey Shipilev <[email protected]> wrote:
>> This is a Zero infrastructure improvement that makes Zero VM work with
>> AsyncGetCallTrace, and by extension, async-profiler.
>>
>> Zero is quite odd in stack management. The "real" stack actually contains
>> the C++ Interpreter and the rest of VM code. The Java stack is reported
>> through the usual "frame" mechanism the rest of VM uses to get the mapping
>> from Template Interpreter, stub, and compiled code. So, to support
>> Java-centric AsyncGetCallTrace, we t "only" need Zero to report the proper
>> Java frames from its ZeroStack from the profiling/signal handlers.
>>
>> Additional testing:
>> - [x] Linux x86_64 Zero `serviceability/AsyncGetCallTrace` now pass
>> - [x] Linux x86_64 Zero works with `async-profiler`
>
> Aleksey Shipilev 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 seven additional
> commits since the last revision:
>
> - Merge branch 'master' into JDK-8274903-zero-asyncgetcalltrace
> - Fix a comment
> - Merge branch 'master' into JDK-8274903-zero-asyncgetcalltrace
> - More reviews
> - Review feedback
> - Merge branch 'master' into JDK-8274903-zero-asyncgetcalltrace
> - Initial work: runs async-profiler successfully
src/hotspot/cpu/zero/frame_zero.cpp line 139:
> 137: assert(is_interpreted_frame(), "Not an interpreted frame");
> 138: // These are reasonable sanity checks
> 139: if (fp() == 0 || (intptr_t(fp()) & (wordSize-1)) != 0) {
Use `is_aligned()` here?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5848