RFR: 8266749: AArch64: Backtracing broken on PAC enabled systems
Alan Hayward
github.com+4146708+a74nh at openjdk.java.net
Fri May 14 15:39:47 UTC 2021
On Fri, 14 May 2021 15:26:24 GMT, Vladimir Kempik <vkempik at openjdk.org> wrote:
> let me check with macos/aarch64 on macos11.4b as it was giving problems with return address having pac signature sometimes too.
>
> Nop, still crashes in SharedRuntime::raw_exception_handler_for_return_address with return address having pac signature in it (probably it's pac, not 100% sure), will investigate further
I suspect that
> > let me check with macos/aarch64 on macos11.4b as it was giving problems with return address having pac signature sometimes too.
> > Nop, still crashes in SharedRuntime::raw_exception_handler_for_return_address with return address having pac signature in it (probably it's pac, not 100% sure), will investigate further
>
> on macos11.4b it's getting something that looks like PAC-ed pointer in src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 487
> address generate_forward_exception() {
> ...
> __ mov(c_rarg1, lr); <-- here
> not sure how it got here bypassing all of your checks
>
> maybe it's too early as 11.4 is still beta. ( beta3 ) and java_m1 is not arm64e process (arm64e = arm64 + PAC)
Apple's Arm64e also signs function pointers (unlike Linux, as it'd break the published AArch64 ABI). If it's only failing in the beta then maybe they are signing additional things. (I've not got access to that).
It might be worth copying the assert I added to the linux_aarch64 version of fetch_compiled_frame_from_context() into the os_bsd version. That might catch what your seeing earlier. (Happy to add that to my patch too).
-------------
PR: https://git.openjdk.java.net/jdk/pull/4029
More information about the hotspot-dev
mailing list