> 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

Reply via email to