RFR: 8364081: Shenandoah & GenShen logging improvement

Rui Li duke at openjdk.org
Fri Jul 25 14:12:05 UTC 2025


Fix missing `increment_total_collections` usages in Shenandoah (otherwise, the invocation count is always 0 as shown in https://github.com/openjdk/jdk/pull/26272 overview). 

Also added some generational information for generational shenandoah logging.

Shenandoah logging samples:


######################
Shenandoah - Beore GC
######################
[0.161s][debug][gc,heap      ] GC(0) Heap Before GC invocations=0 (full 0):
[0.161s][debug][gc,heap      ] GC(0)  Shenandoah Heap
[0.161s][debug][gc,heap      ] GC(0)    100M max, 100M soft max, 100M committed, 40312K used
[0.161s][debug][gc,heap      ] GC(0)   400 x 256K regions
[0.161s][debug][gc,heap      ] GC(0)  Status: not cancelled
[0.161s][debug][gc,heap      ] GC(0)  Reserved region:
[0.161s][debug][gc,heap      ] GC(0)   - [0x00000000f9c00000, 0x0000000100000000) 
[0.161s][debug][gc,heap      ] GC(0)  Collection set:
[0.161s][debug][gc,heap      ] GC(0)   - map (vanilla): 0x0000000000004e70
[0.161s][debug][gc,heap      ] GC(0)   - map (biased):  0x0000000000001000
[0.161s][debug][gc,heap      ] GC(0) 
[0.161s][debug][gc,metaspace ] GC(0) Metaspace Before GC invocations=0 (full 0):
[0.161s][debug][gc,metaspace ] GC(0)  Metaspace       used 86K, committed 320K, reserved 1114112K
[0.161s][debug][gc,metaspace ] GC(0)   class space    used 3K, committed 128K, reserved 1048576K

######################
Shenandoah - After GC
######################
[2.179s][debug][gc,heap        ] GC(9) Heap After GC invocations=17 (full 7):
[2.179s][debug][gc,heap        ] GC(9)  Shenandoah Heap
[2.179s][debug][gc,heap        ] GC(9)    100M max, 100M soft max, 100M committed, 97113K used
[2.179s][debug][gc,heap        ] GC(9)   400 x 256K regions
[2.179s][debug][gc,heap        ] GC(9)  Status: not cancelled
[2.179s][debug][gc,heap        ] GC(9)  Reserved region:
[2.179s][debug][gc,heap        ] GC(9)   - [0x00000000f9c00000, 0x0000000100000000) 
[2.179s][debug][gc,heap        ] GC(9)  Collection set:
[2.179s][debug][gc,heap        ] GC(9)   - map (vanilla): 0x0000000000004e70
[2.179s][debug][gc,heap        ] GC(9)   - map (biased):  0x0000000000001000
[2.179s][debug][gc,heap        ] GC(9) 
[2.179s][debug][gc,metaspace   ] GC(9) Metaspace After GC invocations=17 (full 7):
[2.179s][debug][gc,metaspace   ] GC(9)  Metaspace       used 125K, committed 320K, reserved 1114112K
[2.179s][debug][gc,metaspace   ] GC(9)   class space    used 4K, committed 128K, reserved 1048576K


Generational Shenandoah logging samples

######################
Generational Shenandoah - Beore GC
######################
[0.212s][debug][gc,heap      ] GC(0) Heap Before GC invocations=0 (full 0):
[0.212s][debug][gc,heap      ] GC(0)  Generational Shenandoah Heap
[0.212s][debug][gc,heap      ] GC(0)   Young:
[0.212s][debug][gc,heap      ] GC(0)    100M max, 39686K used
[0.212s][debug][gc,heap      ] GC(0)   Old:
[0.212s][debug][gc,heap      ] GC(0)    0B max, 0B used
[0.212s][debug][gc,heap      ] GC(0)   Entire heap:
[0.212s][debug][gc,heap      ] GC(0)    100M soft max, 100M committed
[0.212s][debug][gc,heap      ] GC(0)  Status: not cancelled
[0.212s][debug][gc,heap      ] GC(0)  Reserved region:
[0.212s][debug][gc,heap      ] GC(0)   - [0x00000000f9c00000, 0x0000000100000000) 
[0.212s][debug][gc,heap      ] GC(0)  Collection set:
[0.212s][debug][gc,heap      ] GC(0)   - map (vanilla): 0x0000000000004e70
[0.212s][debug][gc,heap      ] GC(0)   - map (biased):  0x0000000000001000
[0.212s][debug][gc,heap      ] GC(0) 
[0.212s][debug][gc,metaspace ] GC(0) Metaspace Before GC invocations=0 (full 0):
[0.212s][debug][gc,metaspace ] GC(0)  Metaspace       used 153K, committed 384K, reserved 1114112K
[0.212s][debug][gc,metaspace ] GC(0)   class space    used 3K, committed 128K, reserved 1048576K

######################
Generational Shenandoah - After GC
######################
[1.752s][debug][gc,heap        ] GC(18) Heap After GC invocations=19 (full 3):
[1.752s][debug][gc,heap        ] GC(18)  Generational Shenandoah Heap
[1.752s][debug][gc,heap        ] GC(18)   Young:
[1.752s][debug][gc,heap        ] GC(18)    3328K max, 2883K used
[1.752s][debug][gc,heap        ] GC(18)   Old:
[1.752s][debug][gc,heap        ] GC(18)    99072K max, 98060K used
[1.752s][debug][gc,heap        ] GC(18)   Entire heap:
[1.752s][debug][gc,heap        ] GC(18)    100M soft max, 100M committed
[1.752s][debug][gc,heap        ] GC(18)  Status: young marking, cancelled
[1.752s][debug][gc,heap        ] GC(18)  Reserved region:
[1.752s][debug][gc,heap        ] GC(18)   - [0x00000000f9c00000, 0x0000000100000000) 
[1.752s][debug][gc,heap        ] GC(18)  Collection set:
[1.752s][debug][gc,heap        ] GC(18)   - map (vanilla): 0x0000000000004e70
[1.752s][debug][gc,heap        ] GC(18)   - map (biased):  0x0000000000001000
[1.752s][debug][gc,heap        ] GC(18) 
[1.752s][debug][gc,metaspace   ] GC(18) Metaspace After GC invocations=19 (full 3):
[1.752s][debug][gc,metaspace   ] GC(18)  Metaspace       used 209K, committed 448K, reserved 1114112K
[1.752s][debug][gc,metaspace   ] GC(18)   class space    used 7K, committed 128K, reserved 1048576K

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

Commit messages:
 - 8364081: Shenandoah & GenShen logging improvement

Changes: https://git.openjdk.org/jdk/pull/26469/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26469&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8364081
  Stats: 39 lines in 4 files changed: 28 ins; 0 del; 11 mod
  Patch: https://git.openjdk.org/jdk/pull/26469.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26469/head:pull/26469

PR: https://git.openjdk.org/jdk/pull/26469


More information about the hotspot-gc-dev mailing list