> We saw the failure in serviceability/sa/TestJhsdbJstackMixedWithXComp.java on > Valhalla repo. `jhsdb jstack --mixed` could not unwind continuation call > frames as following: > > > * LingeredAppWithVirtualThread.run() bci:15 line:69 > (Interpreted frame) > * java.lang.Thread.runWith(java.lang.Object, > java.lang.Runnable) bci:5 line:1540 (Compiled frame [deoptimized]; > information may be imprecise) > * java.lang.VirtualThread.run(java.lang.Runnable) bci:62 > line:472 (Compiled frame [deoptimized]; information may be imprecise) > 0x00007fdad773cf98 <StubRoutines (continuation stubs)> > 0xfefefefefefefefe ???????? > > > I found that `frame::sender_for_compiled_frame()` in frame_x86.inline.hpp has > a special case if sender PC has return barrier entry, but SA does not handle > it. > > This is not only a problem on Valhalla. Same problem exists on JDK. So I want > to fix on JDK. > This PR passed serviceability/sa tests on Linux, and also > TestJhsdbJstackMixedWithXComp.java on Valhalla passed 100 times. > > This PR is assembled by following commits: > > * Follows continuation-related code in HotSpot, and use it on AMD64 SA code > * > https://github.com/openjdk/jdk/pull/30107/changes/4af559ee0dbc0bb61e0bcd91bb17459a5abf50ad > * Fix for AArch64 > * > https://github.com/openjdk/jdk/pull/30107/changes/2cff0fe40c52b88dd8d79ad1534e73b7b0f88f8d > * Fix for RISC-V > * > https://github.com/openjdk/jdk/pull/30107/changes/fdef0384577bb71d34371f11bc5878494f276857 > * Fix for PPC64 > * > https://github.com/openjdk/jdk/pull/30107/changes/5d9774d82c7e8c4d92eae8995ab014232ce9590e
Yasumasa Suenaga has updated the pull request incrementally with one additional commit since the last revision: Make setSP() to abstract method ------------- Changes: - all: https://git.openjdk.org/jdk/pull/30107/files - new: https://git.openjdk.org/jdk/pull/30107/files/50c22d3a..875a7bd1 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=30107&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=30107&range=00-01 Stats: 5 lines in 1 file changed: 1 ins; 4 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/30107.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/30107/head:pull/30107 PR: https://git.openjdk.org/jdk/pull/30107
