RFR: 8253860: PPC: Relocation::pd_set_data_value conflates compressed oops and klasses [v2]

Martin Doerr mdoerr at openjdk.java.net
Tue Dec 7 12:47:48 UTC 2021


> Casting narrow Klass pointer to a narrow Oop is problematic. Note that `NativeMovConstReg::set_narrow_oop` only supports narrow Oops.
> It turns out, that the problematic code is unused. We never patch narrow Klass pointers in the instruction stream on PPC64 (`metadata_Relocation::pd_fix_value` has an empty implementation). In contrast to that, narrow Oops in the instructions stream always get patched when the nmethod gets installed (by `fix_oop_relocations`). This makes sense as Metadata doesn't get relocated, but Oops may be moved by GC and the instructions need to get the current value during nmethod installation.
> Note that the initial constants we were using for narrow Oops in the instruction stream were not correct (Oop compression missing, not updated by GC). So, I think it's better to use 0 to avoid confusion.

Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:

  Add comment.

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/6716/files
  - new: https://git.openjdk.java.net/jdk/pull/6716/files/70e97ac7..02d03c06

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6716&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6716&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6716.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6716/head:pull/6716

PR: https://git.openjdk.java.net/jdk/pull/6716


More information about the hotspot-dev mailing list