[15] RFR 8245288: Shenandoah: move up ShenandoahEvacOOM scope for code root processing during concurrent class unloading

Zhengyu Gu zgu at redhat.com
Wed May 20 16:15:47 UTC 2020


Please review this small patch that moves up evacuation OOM scope. With 
JDK-8245240, we can avoid setting up/tearing down the scope for each 
nmethod, it turns out to be significant performance gain [1].

Bug: https://bugs.openjdk.java.net/browse/JDK-8245288
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8245288/webrev.00/

Test:
   hotspot_gc_shenandoah
Thanks,


-Zhengyu


[1]
Baseline:
Concurrent Class Unloading = 0.248 s (a = 4353 us) (n = 57) (lvls, us = 
2910, 3887, 4199, 4707, 6253)
   Unlink Stale = 0.231 s (a = 4056 us) (n = 57) (lvls, us = 2598, 3574, 
3906, 4414, 5969)
     System Dictionary = 0.001 s (a = 12 us) (n = 57) (lvls, us = 9, 11, 
12, 12, 17)
     Weak Class Links = 0.000 s (a = 0 us) (n = 57) (lvls, us = 0, 0, 0, 
0, 1)
     Code Roots = 0.230 s (a = 4043 us) (n = 57) (lvls, us = 2598, 3555, 
3887, 4395, 5955)
   Rendezvous = 0.007 s (a = 119 us) (n = 57) (lvls, us = 72, 96, 115, 
121, 204)
   Purge Unlinked = 0.008 s (a = 142 us) (n = 57) (lvls, us = 95, 125, 
145, 150, 220)
     Code Roots = 0.008 s (a = 141 us) (n = 57) (lvls, us = 95, 123, 
143, 148, 219)
     CLDG = 0.000 s (a = 0 us) (n = 57) (lvls, us = 0, 0, 0, 0, 1)
     Exception Caches = 0.000 s (a = 0 us) (n = 57) (lvls, us = 0, 0, 0, 
0, 0)


Patched:
Concurrent Class Unloading = 0.146 s (a = 2567 us) (n = 57) (lvls, us = 
1797, 2012, 2207, 3066, 4131)
   Unlink Stale = 0.129 s (a = 2263 us) (n = 57) (lvls, us = 1562, 1699, 
1855, 2773, 3835)
     System Dictionary = 0.001 s (a = 12 us) (n = 57) (lvls, us = 10, 
11, 12, 13, 24)
     Weak Class Links = 0.000 s (a = 0 us) (n = 57) (lvls, us = 0, 0, 0, 
0, 1)
     Code Roots = 0.128 s (a = 2249 us) (n = 57) (lvls, us = 1543, 1699, 
1836, 2754, 3822)
   Rendezvous = 0.007 s (a = 124 us) (n = 57) (lvls, us = 82, 107, 117, 
119, 205)
   Purge Unlinked = 0.008 s (a = 143 us) (n = 57) (lvls, us = 97, 123, 
145, 150, 209)
     Code Roots = 0.008 s (a = 142 us) (n = 57) (lvls, us = 97, 121, 
143, 148, 208)
     CLDG = 0.000 s (a = 0 us) (n = 57) (lvls, us = 0, 0, 0, 0, 1)
     Exception Caches = 0.000 s (a = 0 us) (n = 57) (lvls, us = 0, 0, 0, 
0, 0)






More information about the hotspot-gc-dev mailing list