Collection set is empty -> conc mark cancelled

Roman Kennke rkennke at redhat.com
Thu Nov 24 13:17:17 UTC 2016


Hi,

Interestingly, I ran into this myself when I played with heuristics
yesterday :-)

> My question is: what's the purpose for that _collection_set->count()
> ==
> 0 check?

dunno. The idea might have been that if the cset ends up empty,
something is wrong. But as you say, it seems superfluous.

>  Seems superfluous to me, because we had already had our mark,
> and heading to conc evac. What are we canceling? Seems incorrect to
> assume that empty collection set is somehow the detractor from
> the  conc
> mark -- like in the benchmark above, where rootset mutates, but no
> garbage is effectively produced.
> 
> Or, at very least, should we reset the concgc flag somewhere else?

Yes.

Roman


More information about the shenandoah-dev mailing list