RFR: 8288129: Shenandoah: Skynet test crashed with iu + aggressive

Ashutosh Mehra duke at openjdk.org
Tue Aug 30 23:52:37 UTC 2022


Another attempt to fix the crash when running Loom with Shenandoah in iu+aggressive mode.

Explanation for the problem can be seen in https://github.com/openjdk/jdk/pull/9982#issue-1348107961 but instead of adding barriers for the oops in stack chunk header in `do_barriers()`, this fix uses Access API (`oopDesc::obj_field_put_access`) with `IS_DEST_UNINITIALIZED` decorator as suggested in https://github.com/openjdk/jdk/pull/9982#issuecomment-1231843259. The Access API invokes appropriate barriers based on the GC policy and the decorator. For SATB barriers it is a no-op. For IU mode it invokes the iu write barrier.

Testing with fastdebug build:

- [x] hotspot_loom
- [x] jdk_loom
- [x] hotspot_loom in Shenandoah IU mode
- [x] jdk_loom in Shenandoah IU mode
- [x] hotspot_loom in Shenandoah IU + aggressive
- [x] jdk_loom in Shenandoah IU + aggressive

Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>

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

Commit messages:
 - 8288129: Shenandoah: Skynet test crashed with iu + aggressive

Changes: https://git.openjdk.org/jdk/pull/10089/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10089&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288129
  Stats: 36 lines in 9 files changed: 27 ins; 3 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/10089.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10089/head:pull/10089

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


More information about the shenandoah-dev mailing list