On Sat, 28 Feb 2026 08:12:42 GMT, Yasumasa Suenaga <[email protected]> wrote:

>> SA supports DWARF in jhsdb to unwind native call frames on Linux AMD64. It 
>> is better if DWARF is supported on other architectures. This RFE aims to 
>> implement it on AArch64.
>> 
>> This make a big change, so I assembled in 5 commits:
>> 
>> - Unify terminology to "sender"
>>     - 
>> https://github.com/YaSuenag/jdk/commit/9cab52f778a678b283533fa2129bdec378111abb
>>     - Several words ("next", "sender", no prefix) are used around frame 
>> related code in SA,
>>       thus the commit unified to "sender" to follow manner in HotSpot.
>> - Separate DWARF implementation from Linux AMD64
>>     - 
>> https://github.com/YaSuenag/jdk/commit/6c90a74e507bc6cf7068b4d74ffded6d516e4865
>>     - DWARF related code can be separate as platform-independent.
>> - ~~DWARF parser improvement~~ **Done in 
>> [JDK-8377947](https://bugs.openjdk.org/browse/JDK-8377947)**
>>     - 
>> ~~https://github.com/YaSuenag/jdk/commit/979eb7c0dc87c057fb1c0ca88c4ea217d04f09ca~~
>>     - ~~Track all of registers' offset from CFA~~
>>     - ~~Remember states when DWARF parser see `DW_CFA_restore_state` in each 
>> time~~
>> - Use DWARF on AArch64
>>     - 
>> https://github.com/YaSuenag/jdk/commit/b4bd2f3f372cfe2a796a558a4eeada0d57318067
>> - Ignore PAC (PACA)
>>     - 
>> https://github.com/YaSuenag/jdk/commit/8ad3ee82da34a3a6ff0407997904079cced5f9f3
>>     - Ignore AArch64 specific DWARF instructions 
>> (`DW_CFA_AARCH64_negate_ra_state`, `DW_CFA_AARCH64_negate_ra_state_with_pc`, 
>> `DW_CFA_AARCH64_set_ra_state`)
>>     - Mixed jstack might not work on PAC (Pointer Authentication Code) 
>> enabled platform (it is same with current SA) because SA does not decode 
>> PAC. We need to support it if possible (but I do not have PAC enabled Linux 
>> machines).
>>     - And also this commit disables TestJhsdbJstackMixedCore.java on AArch64 
>> because it does not work on Fedora 43 AArch64. PC (program counter) points 
>> out of function in some case because the another function begins immediately 
>> after the end of interest function. If the function ends with `bl`, PC 
>> points beginning of next function. (I confirmed that with assembly code 
>> generated by GCC 15)
>> 
>> 
>> I tested this change on following platforms:
>> - Fedora 43 AMD64
>> - Oracle Linux 8.10 AMD64
>> - Fedora 43 AArch64
>> - Rocky Linux 9.5 AArch64
>> 
>> I tested serviceability/sa on each platforms. On Fedora 43 AArch64 on 
>> Raspberry Pi 4, TestJhsdbJstackMixedWithXComp.java timed out, but I believe 
>> it was caused by machine performance. I didn't see any warnings/errors on 
>> other platforms. In addition, my crash examples ...
>
> Yasumasa Suenaga has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Remove unnecessary include files

I'm seeing the following build failure on linux-aarch64:


src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c:295:50: error: 
'HWCAP_PACA' undeclared (first use in this function); did you mean 'HWCAP_AES'?
  295 |             ph->pac_enabled = auxv->a_un.a_val & HWCAP_PACA;
      |                                                  ^~~~~~~~~~
      |                                                  HWCAP_AES

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

PR Comment: https://git.openjdk.org/jdk/pull/29731#issuecomment-3981090444

Reply via email to