RFR: 8202083: Remove explicit CMS checks in CardTableBarrierSet

Kim Barrett kim.barrett at oracle.com
Mon Apr 23 21:29:31 UTC 2018


> On Apr 20, 2018, at 10:50 AM, Erik Österlund <erik.osterlund at oracle.com> wrote:
> 
> Hi,
> 
> In CardTableBarrierSet, we sometimes need fencing due to the card table being scanned concurrently when using CMS with pre-cleaning. Rather than explicitly checking for those CMS flags in the generic CardTableBarrierSet class, it is preferrable to check the CardTable scanned_concurrently() property which reflects that better
> 
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8202083/webrev.00/
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8202083
> 
> Thanks,
> /Erik

Isn't the correct predicate here
CardTableBarrierSet::card_mark_must_follow_store?

Also, the comment probably ought to be "generalized".

Also, CardTable::scanned_concurrently() seems misplaced. CardTable is
a data structure, scanned_concurrently is a usage policy. And the only
use of scanned_concurrently seems to be the implementation of
card_mark_must_follow_store. It seems like CardTableBarrierSet would
be a better place for that bit of information.



More information about the hotspot-gc-dev mailing list