RFR: 8255691: Shenandoah: Invoke native-LRB only on non-strong refs [v2]

Roman Kennke rkennke at openjdk.java.net
Fri Oct 30 18:44:09 UTC 2020


> The way that current native LRB is implemented is wrong (but non-fatal) and misleading. It's purpose is to prevent resurrection of unreachable non-strong references, and it should only be invoked on non-strong references, not all native references. This distinction will become even more important once we get concurrent reference processing: then we also want to invoke this barrier on referent-loads.
> 
> This changes the runtime-part of native-LRB so that it is only invoked when it's invoked with non-strong reference decorator. Otherwise it acts as regular LRB.
> 
> Testing: hotspot_gc_shenandoah

Roman Kennke has updated the pull request incrementally with two additional commits since the last revision:

 - Fix condition in SBS::use_load_reference_barrier_native()
 - Invoke native LRB only on non-strong native refs from interpreter and compiler too

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/961/files
  - new: https://git.openjdk.java.net/jdk/pull/961/files/34a0d0e9..9911e5b5

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

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

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


More information about the shenandoah-dev mailing list