RFR: 8338737: Shenandoah: Reset marking bitmaps after the cycle [v9]

Xiaolong Peng xpeng at openjdk.org
Sat Oct 26 02:21:09 UTC 2024


> All the shenandoah passed, still waiting for our test farm to verify performance.
> 
> Reset marking bitmaps after collection cycle, for GenShen only do this for young generation, also choose not do this for Degen and full GC since both are running at safepoint, we should leave safepoint as ASAP.
> 
> I have run same workload for 30s with shenandoah in generational mode and classic mode, average average time of concurrent reset dropped significantly(283us to 109us for GenShen, 276us to 167us for classic shenandoah. 
> 
> Classic shenandoah baseline:
> 
> [30.973s][info][gc,stats    ] Concurrent Reset               =    0.148 s (a =      276 us) (n =   536) (lvls, us =      141,      205,      240,      291,      694)
> [30.973s][info][gc,stats    ] Pause Init Mark (G)            =    0.136 s (a =      253 us) (n =   536) (lvls, us =      119,      242,      254,      264,      926)
> [30.973s][info][gc,stats    ] Pause Init Mark (N)            =    0.047 s (a =       87 us) (n =   536) (lvls, us =       62,       84,       88,       91,      110)
> ...
> 
> 
> Classic shenandoah reset bitmaps after cycle:
> 
> [30.967s][info][gc,stats    ] Concurrent Reset               =    0.109 s (a =      167 us) (n =   652) (lvls, us =       48,      113,      139,      160,      888)
> [30.967s][info][gc,stats    ] Concurrent Reset After Collect =    0.085 s (a =      132 us) (n =   648) (lvls, us =      107,      121,      125,      131,      532)
> [30.967s][info][gc,stats    ] Pause Init Mark (G)            =    0.189 s (a =      289 us) (n =   652) (lvls, us =      117,      260,      277,      291,     2297)
> [30.967s][info][gc,stats    ] Pause Init Mark (N)            =    0.058 s (a =       89 us) (n =   652) (lvls, us =       62,       85,       89,       94,      143)
> ...
> 
> 
> GenShen baseline
> 
> [31.008s][info][gc,stats    ] Concurrent Reset               =    0.107 s (a =      283 us) (n =   379) (lvls, us =      143,      225,      283,      330,      753)
> [31.008s][info][gc,stats    ] Pause Init Mark (G)            =    0.098 s (a =      259 us) (n =   379) (lvls, us =      104,      227,      262,      305,     1033)
> [31.008s][info][gc,stats    ] Pause Init Mark (N)            =    0.034 s (a =       90 us) (n =   379) (lvls, us =       67,       81,       89,       99,      130)
> ...
> 
> 
> GenShen reset bitmaps after cycle
> 
> 
> [30.977s][info][gc,stats    ] Concurrent Reset               =    0.050 s (a =      109 us) (n =   462) (lvls, us =       54,       77,      100,      125,      496)
> [30.977s][...

Xiaolong Peng has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 33 commits:

 - Merge branch 'openjdk:master' into genshen-JDK-8338737
 - Not reset bitmap after ShenandoahOldGC
 - Capture Top At Mark Start for *this* generation
 - Revert "set need_bitmap_reset flag when change affiliation of heap region from OLD_GENERATION"
   
   This reverts commit d4fddac5a1e7321ff3b4441bd5cd096e949cd56a.
 - Merge branch 'openjdk:master' into genshen-JDK-8338737
 - Merge branch 'shenandoah' into genshen-JDK-8338737
 - Merge branch 'openjdk:master' into genshen-JDK-8338737
 - set need_bitmap_reset flag when change affiliation of heap region from OLD_GENERATION
 - Address review comments
 - Reset bitmap after ShenandoahOldGC
 - ... and 23 more: https://git.openjdk.org/shenandoah/compare/1b751ad1...79ecb90f

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

Changes: https://git.openjdk.org/shenandoah/pull/516/files
  Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=516&range=08
  Stats: 106 lines in 6 files changed: 91 ins; 2 del; 13 mod
  Patch: https://git.openjdk.org/shenandoah/pull/516.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/516/head:pull/516

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


More information about the shenandoah-dev mailing list