RFR: Enable remembered set verification during global collections [v3]

William Kemper wkemper at openjdk.java.net
Thu Sep 9 17:45:07 UTC 2021


On Wed, 8 Sep 2021 22:05:56 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> If we verify remset while old marking is "ongoing", ctx is not "reliable".  In that case, I had been arranging for ctx to equal NULL with the understanding that obj->size() would get me to the next (possibly coalesced and filled) object within old-gen.  I don't yet follow the logic for how you can always rely on ctx being not NULL here.
>
> If `ctx` is NULL, we'll have gone into the other path and used `obj->size()` to advance `obj_addr`. I'll add an assert that `obj_addr` is below TAMS during the init-mark verification.  We only verify the remembered set during a mixed evacuation or global collect (as of this change). In both cases there should be no concurrent marking of old (I'll add an assert for this also).

I was able to simplify this (and similar code in a few other places) because we've previously checked if the object is marked (which would return true for an object above TAMS).

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

PR: https://git.openjdk.java.net/shenandoah/pull/64


More information about the shenandoah-dev mailing list