RFR: 8371284: GenShen: Avoid unnecessary card marking [v3]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Wed Dec 10 16:54:54 UTC 2025
On Tue, 18 Nov 2025 23:06:47 GMT, Nityanand Rai <duke at openjdk.org> wrote:
>> Nityanand Rai has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Apply suggestions from code review
>>
>> Co-authored-by: Aleksey Shipilëv <shipilev at amazon.de>
>
> Here are GenShen results over 100+ sample collections
>
> +1.90% philosophers/philosophers_duration p=0.00142 (Wilcoxon)
> Control: 2.620s (+/-173.82ms) 120
> Test: 2.670s (+/-205.24ms) 120
>
> +1.68% finagle-chirper/finagle-chirper_duration p=0.00343 (Wilcoxon)
> Control: 2.802s (+/-130.38ms) 360
> Test: 2.850s (+/-131.25ms) 360
>
> +1.04% rx-scrabble/rx-scrabble_duration p=0.00000 (Wilcoxon)
> Control: 148.308ms (+/- 0.88ms) 320
> Test: 149.855ms (+/- 0.60ms) 320
>
> -2.48% scrabble/scrabble_duration p=0.00000 (Wilcoxon)
> Control: 169.599ms (+/- 2.90ms) 200
> Test: 165.399ms (+/- 3.40ms) 200
>
> -2.24% scala-kmeans/scala-kmeans_duration p=0.00000 (Wilcoxon)
> Control: 479.973ms (+/- 1.92ms) 200
> Test: 469.219ms (+/- 1.98ms) 200
@nityarai08 :
> Description states:
>
> > Exclude young-young, old-old and honor UseCondCardMark in dirty card marking.
>
> I don't see any change for the latter. I believe `UseCondCardMark` is already enabled with GenShen, and the barrier ode respects it.
>
> Also `Exclude young-young, old-old` skips the part of the change that also skips `young->old`. I'd reword the synopsis to:
>
> > Skips card marks for stores in young generation objects, old -> old, and null stores.
>
> which I think is what the code does.
>
Once description/synopsis is corrected, this PR looks good to go. Approved in anticipation.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28204#issuecomment-3638042985
More information about the hotspot-gc-dev
mailing list