RFR: 8305668: PPC: Non-Top Interpreted frames should be independent of ABI_ELFv2

Tyler Steele tsteele at openjdk.org
Thu Apr 13 16:46:41 UTC 2023


On Tue, 11 Apr 2023 14:22:46 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

>> This PR makes parent interpreted Java frames independent of `ABI_ELFv2`.
>> With the changes `test/jdk/jdk/internal/vm/Continuation/BasicExt.java#COMP_ALL` succeeds on PPC64 Big Endian Linux.
>> 
>> Before:
>> 
>> * `parent_ijava_frame_abi` was derived from `abi_minframe` which depends on `ABI_ELFv2`
>> * jit_abi is independent of `abi_minframe`
>> * `frame::metadata_words` is wrong for `parent_ijava_frame_abi` if `ABI_ELFv2` is not defined (big endian)
>> 
>> After changes:
>> 
>> * prefixed structs that depend on `ABI_ELFv2` with `native_`
>> * introduced `java_abi` which is independent of `ABI_ELFv2`
>> * `frame::metadata_words` is the size in words of `java_abi`
>> 
>> This is still a little imprecise since `top_ijava_frame_abi` is larger than `java_abi` but the top frame is never frozen as it is always `vmIntrinsics::_Continuation_doYield`
>> 
>> Testing:
>> 
>> PPC64le: most JCK and JTREG tiers 1-4, also in Xcomp mode.
>> PPC64be Linux: hotspot tier1 tests
>
> Going back to draft because the following fails with this pr:
> 
> 
> time make test TEST=test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03

@reinrich Thanks for spotting this! This issue was affecting my VThreads port in a way I hadn't correctly diagnosed.

> Going back to draft because the following fails with this pr:
> 
> ```
> time make test TEST=test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03
> ```

Out of curiosity, what is the problem with the above command? It seems to work as expected for me.


Building target 'test' in configuration 'aix-ppc64-server-fastdebug'
Test selection 'test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03', will run:
* jtreg:test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03

Running test 'jtreg:test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03'
Passed: serviceability/jvmti/thread/GetThreadState/thrstat03/thrstat03.java
Test results: passed: 1
Report written to /home/hotspot/openjdk/jdk-tyler/build/aix-ppc64-server-fastdebug/test-results/jtreg_test_hotspot_jtreg_serviceability_jvmti_thread_GetThreadState_thrstat03/html/report.html
Results written to /home/hotspot/openjdk/jdk-tyler/build/aix-ppc64-server-fastdebug/test-support/jtreg_test_hotspot_jtreg_serviceability_jvmti_thread_GetThreadState_thrstat03
Finished running test 'jtreg:test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03'
Test report is stored in build/aix-ppc64-server-fastdebug/test-results/jtreg_test_hotspot_jtreg_serviceability_jvmti_thread_GetThreadState_thrstat03

==============================
Test summary
==============================
   TEST                                              TOTAL  PASS  FAIL ERROR   
   jtreg:test/hotspot/jtreg/serviceability/jvmti/thread/GetThreadState/thrstat03
                                                         1     1     0     0   
==============================
TEST SUCCESS

Finished building target 'test' in configuration 'aix-ppc64-server-fastdebug'

real    0m41.091s
user    0m42.847s
sys     0m5.076s

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

PR Comment: https://git.openjdk.org/jdk/pull/13372#issuecomment-1503627092
PR Comment: https://git.openjdk.org/jdk/pull/13372#issuecomment-1504222801


More information about the hotspot-compiler-dev mailing list