RFR: 8322294: Cleanup NativePostCallNop [v5]

Richard Reingruber rrich at openjdk.org
Wed Jan 10 08:55:50 UTC 2024


> This is a refactoring/cleanup of `NativePostCallNop` that simplifies the ppc64 port (dependent pr https://github.com/openjdk/jdk/pull/17171).
> 
> * `frame::get_oop_map()` is moved to shared code
> 
> * encoding / decoding details of the oopmap slot and the CodeBlob offset are moved from shared code to the platform dependent implementations of `bool NativePostCallNop::patch(int32_t oopmap_slot, int32_t cb_offset)` and `bool NativePostCallNop::decode(int32_t& oopmap_slot, int32_t& cb_offset)`
> 
> The change passed our CI testing. JTReg tests: tier1-4 of hotspot and jdk. All of Langtools and jaxp. SPECjvm2008, SPECjbb2015, Renaissance Suite, and SAP specific tests.
> All testing was done with fastdebug and release builds on the main platforms and also on Linux/PPC64le and AIX.
> 
> EDIT 2023-12-22: Statistics
> 
> The statistical numbers were generated with release builds. For riscv64 I used qemu.
> The variance is high on all platforms. Up to 80% I think. Numbers with fastdebug are also very different.
> Nevertheless, they are consistent within one run, and I'd expect errors in encoding or decoding to manifest in the numbers.
> 
> | test/jdk/java/lang/Thread/virtual/stress/Skynet.java | x86_64: base | x86_64: pr | aarch64: base | aarch64: pr | riscv64: base | riscv64: pr |
> |------------------------------------------------------|--------------|------------|---------------|-------------|---------------|-------------|
> | PCN lookup success                                   | 17517455     | 15339681   | 13179049      | 15980253    | 19400110      | 30017193    |
> | PCN lookup failure                                   | 328164       | 372555     | 237617        | 138164      | 415341        | 586476      |
> | PCN decode success                                   | 17513991     | 15336485   | 13176061      | 15977651    | 19397398      | 30014226    |
> | PCN decode failure                                   | 3464         | 3196       | 2988          | 2602        | 2712          | 2967        |
> | PCN patch success                                    | 2676         | 2465       | 2459          | 2089        | 2214          | 2259        |
> | PCN patch cb offset failure                          | 0            | 0          | 0             | 0           | 0             | 0           |
> | PCN patch oopmap slot failure                        | 0            | 0          | 0             | 0           | 0             | 0           |
> 
> 
> | SpecJVM2008 compiler.compiler with fix iterations    | x86_64: base | x8...

Richard Reingruber has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:

 - Merge branch 'master'
 - Suggstion Andrew
   
   Co-authored-by: Andrew Haley <aph-open at littlepinkcloud.com>
 - Add newline
 - Review Martin
 - 8322294: Cleanup NativePostCallNop

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17150/files
  - new: https://git.openjdk.org/jdk/pull/17150/files/6c1fd588..1dfa9628

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17150&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17150&range=03-04

  Stats: 21335 lines in 773 files changed: 14969 ins; 3022 del; 3344 mod
  Patch: https://git.openjdk.org/jdk/pull/17150.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17150/head:pull/17150

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


More information about the hotspot-compiler-dev mailing list