RFR: Evac assist should touch marked objects only
Aleksey Shipilev
shade at redhat.com
Thu Aug 23 19:12:19 UTC 2018
http://cr.openjdk.java.net/~shade/shenandoah/evac-assist-unmarked/webrev.01/
Our testing shows evac assist is still broken. It fails very intermittently with normal degens too.
The failure comes from touching the dead object's size() during assists. This works fine when
assisted object is above the TAMS, when all objects are implicitly alive, but fails when it is below
the TAMS.
Normal scanning code uses the bitmap for below-TAMS scans, but I think it is easier to terminate the
assist as soon as first non-marked object is detected. Logging shows we still assist plenty. Maybe
we would consider doing the bitmap scan in future.
I believe degen-traversal workaround is not needed anymore, because it fails for the same reason:
touching the dead object. Only the symptom differs: there, dead object appears doubly-forwarded.
This patch resolves that by never touching the fwdptr for unmarked objects.
I'd like to give this patch a ride in sh/jdk nightlies.
Testing: tier3_gc_shenandoah (running), intermittently failing stress test
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list