RFR: 8202082: Remove explicit CMS checks in CardTableBarrierSetAssembler
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 scanned_concurrently() 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