On Tue, 14 Feb 2023 14:10:08 GMT, Richard Reingruber <rr...@openjdk.org> wrote:

> This fixes the linked issue by trimming the caller of a frame to be 
> deoptimized back to its `unextended_sp` iff it is compiled. The creation of 
> the section `dead after deoptimization` shown in the attachment 
> [yield_after_deopt_failure.log](https://bugs.openjdk.org/secure/attachment/102602/yield_after_deopt_failure.log)
>  is prevented by this.
> 
> A new mode is added to the test BasicExt.java where all frames are 
> deoptimized after a yield operation. The issue can be deterministically 
> reproduced with the new mode. It's not worth to execute all test cases with 
> the new mode though. Instead `ContinuationCompiledFramesWithStackArgs_3c4` is 
> always executed a 2nd time in this mode.
> 
> Before this BasicExt.java was refactored for better argument processing and 
> representation of the test modes.
> Also the try-catch-clause in the main method had to be changed to rethrow the 
> caught exception because without this the test would have succeeded.
> 
> Testing: jtreg tests tier 1-4 on standard platforms and also on ppc64le.

LGTM. Thanks for fixing!

src/hotspot/cpu/ppc/frame_ppc.cpp line 424:

> 422: 
> 423: intptr_t *frame::initial_deoptimization_info() {
> 424:   // `this` is the caller of the deoptee. We want to trimm it, if 
> compiled, to

I believe "to trim" should contain only one 'm' in English.

-------------

Marked as reviewed by mdoerr (Reviewer).

PR: https://git.openjdk.org/jdk/pull/12557

Reply via email to