RFR: 8202082: Remove explicit CMS checks in CardTableBarrierSetAssembler (original) (raw)

Kim Barrett kim.barrett at oracle.com
Tue Apr 24 02:15:13 UTC 2018


On Apr 20, 2018, at 10:43 AM, Erik Ă–sterlund <erik.osterlund at oracle.com> wrote:

Hi, In CardTableBarrierSetAssembler, 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 CardTableBarrierSetAssembler class, it is preferrable to check the CardTable scannedconcurrently() property which already precisely reflects that. Bug: https://bugs.openjdk.java.net/browse/JDK-8202082 Webrev: http://cr.openjdk.java.net/~eosterlund/8202082/webrev.00/ Thanks, /Erik


src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp 121 if (ct->scanned_concurrently()) {

I think the correct test here is card_mark_must_follow_store. See my review of 8202083 for more details.

Similarly for the other platforms.


src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp 113 AddressLiteral cardtable((address)ctbs->card_table()->byte_map_base(), relocInfo::none);

[pre-existing]

Why isn't this using (address)disp rather than refetching the value.




More information about the hotspot-dev mailing list