RFR: JDK-8297796 GenShen: instrument the remembered set scan [v12]

Y. Srinivas Ramakrishna ysr at openjdk.org
Mon Dec 19 23:59:15 UTC 2022


On Mon, 19 Dec 2022 23:46:19 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Y. Srinivas Ramakrishna has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 65 commits:
>> 
>>  - Merge branch 'master' into JVM-1264-dependent
>>  - Add a previously missed ticket#. Doing it here rather than in parent to
>>    avoid an otherwise unnecessary re-review touchpoint.
>>  - Merge branch 'stats_merge' into JVM-1264-dependent
>>  - Merge branch 'master' into stats_merge
>>  - jcheck space fix
>>  - Fix compiler error on windows.
>>  - Fix some tier1 tests.
>>  - Remove an unnecessary include, fix some type incorrectness.
>>  - Merge branch 'JVM-1264' into JVM-1264-dependent
>>  - Merge branch 'master' into JVM-1264
>>  - ... and 55 more: https://git.openjdk.org/shenandoah/compare/bbd4ef34...9c5c741f
>
> src/hotspot/share/gc/shenandoah/shenandoahCardStats.hpp line 61:
> 
>> 59:     _cards_in_cluster(cards_in_cluster),
>> 60:     _local_card_stats(card_stats),
>> 61:     _last_dirty(false),
> 
> Should it always be the case that `_last_dirty != _last_clean`? Could we use one variable here instead of two?

I believe we switch into one of two modes based on the first card we encounter. So there are 3 states: an initial (neither), and then subsequently either dirty or clean. So there are 3 states, which is 2 bits. It's possible I could shrink it to 2 bits by some cleverness, but figured I wouldn't try too hard as this is still all non-product. I'll think some more about it.

-------------

PR: https://git.openjdk.org/shenandoah/pull/176


More information about the shenandoah-dev mailing list