RFR: 8352185: Shenandoah: Invalid logic for remembered set verification [v13]

Y. Srinivas Ramakrishna ysr at openjdk.org
Wed Mar 26 00:56:21 UTC 2025


On Wed, 26 Mar 2025 00:17:44 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:

>> I have run h2 benchmark, here is the remembered set scan times after a global GC, it does seem to improve  remembered set scan time in this case:
>> 
>> PR version:
>> 
>> [2025-03-21T07:35:41.801+0000][10.292s][19715][info ][gc             ] GC(6) Concurrent remembered set scanning 13.069ms
>> [2025-03-21T07:35:48.088+0000][16.579s][19715][info ][gc             ] GC(9) Concurrent remembered set scanning 5.537ms
>> [2025-03-21T07:35:56.610+0000][25.101s][19715][info ][gc             ] GC(14) Concurrent remembered set scanning 6.186ms
>> [2025-03-21T07:36:03.967+0000][32.459s][19715][info ][gc             ] GC(18) Concurrent remembered set scanning 9.562ms
>> [2025-03-21T07:36:11.234+0000][39.725s][19715][info ][gc             ] GC(22) Concurrent remembered set scanning 2.591ms
>> [2025-03-21T07:36:17.303+0000][45.794s][19715][info ][gc             ] GC(25) Concurrent remembered set scanning 0.999ms
>> [2025-03-21T07:36:25.647+0000][54.139s][19715][info ][gc             ] GC(30) Concurrent remembered set scanning 1.665ms
>> [2025-03-21T07:36:32.790+0000][61.281s][19715][info ][gc             ] GC(33) Concurrent remembered set scanning 2.851ms
>> [2025-03-21T07:36:40.241+0000][68.732s][19715][info ][gc             ] GC(36) Concurrent remembered set scanning 0.716ms
>> [2025-03-21T07:36:47.440+0000][75.931s][19715][info ][gc             ] GC(39) Concurrent remembered set scanning 1.932ms
>> 
>> 
>> master:
>> 
>> [2025-03-21T07:34:04.978+0000][10.765s][17923][info ][gc             ] GC(6) Concurrent remembered set scanning 22.813ms
>> [2025-03-21T07:34:11.250+0000][17.038s][17923][info ][gc             ] GC(9) Concurrent remembered set scanning 14.457ms
>> [2025-03-21T07:34:18.692+0000][24.480s][17923][info ][gc             ] GC(14) Concurrent remembered set scanning 4.972ms
>> [2025-03-21T07:34:26.033+0000][31.820s][17923][info ][gc             ] GC(18) Concurrent remembered set scanning 9.134ms
>> [2025-03-21T07:34:34.416+0000][40.203s][17923][info ][gc             ] GC(22) Concurrent remembered set scanning 3.655ms
>> [2025-03-21T07:34:42.180+0000][47.967s][17923][info ][gc             ] GC(26) Concurrent remembered set scanning 3.253ms
>> [2025-03-21T07:34:49.371+0000][55.168s][17923][info ][gc             ] GC(29) Concurrent remembered set scanning 1.615ms
>> [2025-03-21T07:34:56.592+0000][62.396s][17923][info ][gc             ] GC(32) Concurrent remembered set scanning 1.570ms
>> [2025-03-21T07:35:03.766+0000][69.575s][17923][info ][gc             ] GC(35) Concurrent remembere...
>
> very cool!

May be as intended earlier, leave a documentation comment between lines 697 & 698 along the lines of Kelvin's comment:


// After we swap card table below, the write-table is all clean, and the read table holds
// cards dirty prior to the start of GC. Young and bootstrap collection will update
// the write card table as a side effect of remembered set scanning. Global collection will
// update the card table as a side effect of global marking of old objects.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24092#discussion_r2013107472


More information about the hotspot-gc-dev mailing list