RFR: 8315247: GenShen: Condition calls to post-write barrier code generation by a flag [v2]

Y. Srinivas Ramakrishna ysr at openjdk.org
Tue Aug 29 19:58:46 UTC 2023


> Protect the card barrier code generation by a new global `ShenandoahCardBarrier`, which is disabled by default and enabled for GenShen (generational mode Shenandoah) only. If the user forces the barrier flag to a value inconsistent with mode, we exit with an appropriate error message.
> 
> The changes have been made for x86, aarch, and ppc. I have tested on x86 on a cloud host running jtreg1-4 and SPECjbb. A round of aarch64 and x86 pipeline tests have run (but ran into existing assertion that William is fixing). Will request PPC testing from partners able to test. RISC-V & S390 don't currently support generational mode Shenandoah.

Y. Srinivas Ramakrishna 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 eight additional commits since the last revision:

 - Elaborate ShenandoahCardBarrier documentation a bit.
 - Merge branch 'master' into card_barrier
 - Check and exit if user specifies a setting of ShenandoahCardBarrier that
   conflicts with ShenandoahGCMode.
 - check that ShenandoahCardBarrier is off by default for most
   configurations. Exit with an error message if the user tries to change
   it.
 - Changes from prelim review by William & Kelvin.
 - Take care of some ppc changes
 - Merge branch 'master' into card_barrier
 - First cut of changes, checking in for testing:
   test at caller of post-write-barrier for ShenandoahCardBarrier, and
   assert in post-barrier/generation code that we are in generational mode.

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

Changes:
  - all: https://git.openjdk.org/shenandoah/pull/313/files
  - new: https://git.openjdk.org/shenandoah/pull/313/files/71bd4973..8fb05b2c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=shenandoah&pr=313&range=01
 - incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=313&range=00-01

  Stats: 81 lines in 12 files changed: 41 ins; 8 del; 32 mod
  Patch: https://git.openjdk.org/shenandoah/pull/313.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/313/head:pull/313

PR: https://git.openjdk.org/shenandoah/pull/313


More information about the shenandoah-dev mailing list