RFR: 8300197: Freeze/thaw an interpreter frame using a single copy_to_chunk() call [v2]
Fredrik Bredberg
duke at openjdk.org
Fri Apr 21 13:09:37 UTC 2023
> On certain architectures (like AARCH64) padding may be inserted between the locals and the rest of the stack frame in order to keep the frame pointer 16-byte-aligned.
>
> This padding is currently not freezed, instead freezing of a single interpreter stack frame is done using two separate copy_to_chunk() calls (see recurse_freeze_interpreted_frame). Likewise, thawing is done using two separate copy_from_chunk() calls.
>
> This poses a bit of a problem when trying to relativize stack addresses in interpreter frames ([JDK-8289296](https://bugs.openjdk.org/browse/JDK-8289296)). Since relative offsets may need to be changed during freezing and thawing.
>
> By both freezing and thawing the padding we remove the need to change any relative offsets in runtime.
>
> Tested tier1-tier8 on supported platforms, found no new issues. PowerPC and RISC-V was sanity tested using Qemu.
Fredrik Bredberg has updated the pull request incrementally with one additional commit since the last revision:
Updated after review
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/13477/files
- new: https://git.openjdk.org/jdk/pull/13477/files/c2dd899c..3b4c0fa3
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=13477&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=13477&range=00-01
Stats: 65 lines in 8 files changed: 4 ins; 37 del; 24 mod
Patch: https://git.openjdk.org/jdk/pull/13477.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13477/head:pull/13477
PR: https://git.openjdk.org/jdk/pull/13477
More information about the hotspot-dev
mailing list