Prepopulated SerialGC old gen causes slow GC verification

Ioi Lam ioi.lam at oracle.com
Wed Sep 8 18:14:35 UTC 2021


I am trying to implement JDK-8273508 - Support archived heap objects in 
SerialGC

https://github.com/openjdk/jdk/compare/master...iklam:8273508-archived-heap-objects-for-serial-gc?expand=1

My initial implementation copies the archived objects into 
SerialHeap::old_gen(). However, this causes very slow GC verification:

     $ java -Xlog:gc+verify -XX:+UseSerialGC -version
     [2.446s][info][gc,verify] Verifying  1891.996ms
     [4.316s][info][gc,verify] Verifying  1864.602ms
     [6.209s][info][gc,verify] Verifying  1890.085ms
     [8.090s][info][gc,verify] Verifying  1878.792ms
     [9.981s][info][gc,verify] Verifying  1873.986ms
     [11.872s][info][gc,verify] Verifying  1887.524ms
     [13.766s][info][gc,verify] Verifying  1880.724ms
     [15.609s][info][gc,verify] Verifying  1841.357ms
     [17.476s][info][gc,verify] Verifying  1865.397ms
     [19.345s][info][gc,verify] Verifying  1865.539ms
     [21.243s][info][gc,verify] Verifying  1894.178ms
     [23.116s][info][gc,verify] Verifying  1871.097ms
     [24.966s][info][gc,verify] Verifying  1848.107ms
     [26.816s][info][gc,verify] Verifying  1848.846ms
     [28.698s][info][gc,verify] Verifying  1876.097ms
     [30.609s][info][gc,verify] Verifying  1909.611ms
     java version "18-internal" 2022-03-15
     Java(TM) SE Runtime Environment (fastdebug build 
18-internal+0-adhoc.iklam.open)
     Java HotSpot(TM) 64-Bit Server VM (fastdebug build 
18-internal+0-adhoc.iklam.open, mixed mode, sharing)
     [32.503s][info][gc,verify] Verifying  1879.452ms

So in my current revision, I allocate from SerialHeap::young_gen() 
instead (See the "#if 1" in serialHeap.cpp)

     $ java -Xlog:gc+verify -XX:+UseSerialGC -version
     [0.569s][info][gc,verify] Verifying  10.830ms
     [0.577s][info][gc,verify] Verifying  7.724ms
     [0.587s][info][gc,verify] Verifying  7.941ms
     [0.595s][info][gc,verify] Verifying  7.937ms
     [0.617s][info][gc,verify] Verifying  10.125ms
     [0.627s][info][gc,verify] Verifying  8.932ms
     [0.649s][info][gc,verify] Verifying  9.737ms
     [0.659s][info][gc,verify] Verifying  9.194ms
     [0.670s][info][gc,verify] Verifying  8.889ms
     [0.680s][info][gc,verify] Verifying  8.752ms
     [0.692s][info][gc,verify] Verifying  9.067ms
     [0.703s][info][gc,verify] Verifying  9.924ms
     [0.715s][info][gc,verify] Verifying  9.874ms
     [0.725s][info][gc,verify] Verifying  9.164ms
     [0.740s][info][gc,verify] Verifying  9.282ms
     [0.751s][info][gc,verify] Verifying  9.383ms
     java version "18-internal" 2022-03-15
     Java(TM) SE Runtime Environment (fastdebug build 
18-internal+0-adhoc.iklam.open)
     Java HotSpot(TM) 64-Bit Server VM (fastdebug build 
18-internal+0-adhoc.iklam.open, mixed mode, sharing)
     [0.767s][info][gc,verify] Verifying  10.270ms

Does anyone know how to fix this properly?

Thanks
- Ioi




More information about the hotspot-gc-dev mailing list