RFR: JVM-1767: GenShen: Reference Processing Needs a Card-Marking Barrier
Y. Srinivas Ramakrishna
ysr at openjdk.org
Thu Mar 30 20:36:58 UTC 2023
JVM-1767: GenShen: Reference Processing Needs a Card-Marking Barrier
Global collections can create new cross-generational pointers during j.l..r.Reference processing which should be added to the card marking remembered set. The issue was found with dacapo during heap verification and happens somewhat rarely. I added the requisite barrier and have provided a comment describing the sole situation in reference processing that should need the barrier. Assertions check this condition, but the barrier is also redundantly added for young collections too.
I have tested with and without heap verification using product and fastdebug builds using dacapo and specjbb. Will run it through our internal tests pipeline too before pushing the fix.
I have not yet run any performance comparisons to assess the impact of the checks for applications that traffic heavily in j.l.r.Refs, but am open to any suggestions.
Thank you for your reviews.
-------------
Commit messages:
- Add documentation comment & some assertions.
- When (generational) GC discovers j.l.Reference:s in both generations, then subsequent
- Shelve for now. May not compile.
Changes: https://git.openjdk.org/shenandoah/pull/238/files
Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=238&range=00
Issue: https://bugs.openjdk.org/browse/JDK-1767
Stats: 28 lines in 1 file changed: 28 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/shenandoah/pull/238.diff
Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/238/head:pull/238
PR: https://git.openjdk.org/shenandoah/pull/238
More information about the shenandoah-dev
mailing list