RFC: One marking bitmap

Aleksey Shipilev shade at redhat.com
Thu Oct 5 14:51:52 UTC 2017


On 10/05/2017 12:24 PM, Roman Kennke wrote:
> The main problem has been concurrent class unloading. When we do this, we unload classes that may
> still be referenced by unreachable objects in non-cset regions. When we try to iterate such a region
> object-by-object, we may hit such an object with a dangling Klass* and crash. Always having a valid
> bitmap around means we can iterate based on actual liveness info, which guarantees us to skip dead
> objects with dangling Klass*.

I do not understand this explanation. Actually, I don't understand how second bitmap avoids this
issue. One marking bitmap is *also* valid after class unloading (during final mark) had happened,
and we can iterate over it safely. Can you do the more verbose example?

-Aleksey



More information about the shenandoah-dev mailing list