RFR: 8328307: GenShen: Re-enable old-has-grown trigger for old-generation GC

Kelvin Nilsen kdnilsen at openjdk.org
Mon Mar 18 13:36:56 UTC 2024


Enable old-gen growth triggers, which were inadvertantly disabled.  This passes the internal regression pipeline tests.

As would be expected, we see an increase in mixed-evacuation triggers.  We also see significant improvement on certain extremem workloads due to improved clearing of old-gen.


   Control: shenandoah-x86-template
Experiment: enable-old-growth-triggers-gh-x86

                          Most impacted benchmarks |                              Most impacted metrics
-------------------------------------------------------------------------------------------------------
                           Genshen/extremem-phased |                             trigger_expedite_mixed
                Genshen/specjbb2015_weak_ref_patch |                                    trigger_failure
                               Genshen/specjbb2015 |                               context_switch_count
                    Genshen/hyperalloc_a3072_o4096 |                                     sla_25000_jops
                            Shenandoah/specjbb2015 |                                      trigger_learn


                                Only in experiment |                                    Only in control
-------------------------------------------------------------------------------------------------------
     hyperalloc_a2048_o2048/trigger_expedite_mixed |                   compress/concurrent_thread_roots
     hyperalloc_a2048_o4096/trigger_expedite_mixed |                        crypto.rsa/ctr_thread_roots
     hyperalloc_a3072_o2048/trigger_expedite_mixed |                               crypto.rsa/ctr_total
     hyperalloc_a3072_o4096/trigger_expedite_mixed |               extremem-large-31g/trigger_expansion
              extremem-large-31g/trigger_overgrown |                  extremem-phased/trigger_expansion

Genshen
-------------------------------------------------------------------------------------------------------
+685.00% specjbb2015_weak_ref_patch/trigger_expedite_mixed p=0.00002
  Control:      2.500   (+/-  0.68  )         30
  Test:        19.625   (+/-  4.79  )         10

+561.90% specjbb2015/trigger_expedite_mixed p=0.00001
  Control:      2.625   (+/-  0.92  )         30
  Test:        17.375   (+/-  3.89  )         10

+225.42% extremem-phased/trigger_expedite_mixed p=0.00000
  Control:      9.833   (+/-  3.48  )         30
  Test:        32.000   (+/-  2.58  )         10

+63.84% hyperalloc_a3072_o4096/evacuation p=0.02662
  Control:     37.260ms (+/- 15.92ms)         42
  Test:        61.045ms (+/- 36.61ms)         18

+46.92% xml.transform/concurrent_class_unloading p=0.00036
  Control:     11.433ms (+/-  5.62ms)         30
  Test:        16.798ms (+/-  3.54ms)         10

+30.00% hyperalloc_a3072_o4096/trigger_failure p=0.00705
  Control:      5.000   (+/-  1.17  )         30
  Test:         6.500   (+/-  1.26  )         10

+14.40% hyperalloc_a2048_o4096/context_switch_count p=0.00000
  Control:   3599.083   (+/-193.26  )         30
  Test:      4117.500   (+/-230.83  )         10

+12.85% hyperalloc_a3072_o4096/context_switch_count p=0.00004
  Control:   4740.125   (+/-321.27  )         30
  Test:      5349.000   (+/-258.71  )         10

+12.21% extremem-phased/degen_update_roots p=0.00263
  Control:      1.323ms (+/- 95.21us)         39
  Test:         1.484ms (+/-113.46us)          3

+9.29% specjbb2015/sla_25000_jops p=0.01885
  Control:   4695.333   (+/-456.15  )         30
  Test:      5131.375   (+/-543.33  )         10

-97102.38% extremem-phased/browsing_history_p100 p=0.00571
  Control:    829.744ms (+/-  1.27s )         30
  Test:       853.625us (+/-710.96ms)         10

-95076.16% extremem-phased/sales_transaction_p100 p=0.00444
  Control:    974.842ms (+/-  1.53s )         30
  Test:         1.024ms (+/-  1.02s )         10

-37209.24% extremem-phased/product_replacement_p100 p=0.00206
  Control:      1.048s  (+/-  1.47s )         30
  Test:         2.810ms (+/-156.82us)         10

-22224.40% extremem-phased/customer_replacement_p100 p=0.00813
  Control:    589.671ms (+/-982.52ms)         30
  Test:         2.641ms (+/-392.66ms)         10

-2919.20% extremem-phased/customer_preparation_p100 p=0.00055
  Control:      2.200s  (+/-  2.57s )         30
  Test:        72.871ms (+/-  1.05s )         10

-1210.30% extremem-phased/customer_purchase_p99_999 p=0.00007
  Control:      2.265s  (+/-  2.34s )         30
  Test:       172.899ms (+/-  1.01s )         10

-831.11% extremem-phased/customer_purchase_p100 p=0.00019
  Control:      2.427s  (+/-  2.45s )         30
  Test:       260.653ms (+/-999.78ms)         10

-828.82% extremem-phased/customer_save_for_later_p100 p=0.00020
  Control:      2.408s  (+/-  2.36s )         30
  Test:       259.252ms (+/-  1.00s )         10

-226.18% extremem-phased/trigger_failure p=0.00019
  Control:     11.960   (+/-  9.07  )         29
  Test:         3.667   (+/-  1.63  )          6

-114.63% specjbb2015/concurrent_reset_old p=0.00000
  Control:     10.276ms (+/-  2.69ms)         30
  Test:         4.788ms (+/-  1.12ms)         98


Shenandoah
-------------------------------------------------------------------------------------------------------
+13.64% specjbb2015/context_switch_count p=0.03029
  Control: 12676397.583   (+/-2132032.46  )         30
  Test:    14405702.000   (+/-1872405.31  )         10

+11.50% specjbb2015/cpu_system p=0.03445
  Control:    238.974s  (+/- 33.40s )         30
  Test:       266.447s  (+/- 31.21s )         10

+9.89% specjbb2015/sla_25000_jops p=0.00140
  Control:   5310.750   (+/-385.68  )         30
  Test:      5835.750   (+/-388.85  )         10

-40.40% scimark.lu.large/concurrent_evacuation p=0.01539
  Control:     10.070ms (+/-  5.53ms)         30
  Test:         7.172ms (+/-  1.30ms)         10

-38.03% serial/concurrent_update_refs p=0.01773
  Control:     21.753ms (+/-  8.87ms)         30
  Test:        15.760ms (+/-  3.97ms)         10

-6.05% extremem-phased/customer_replacement_p99 p=0.02487
  Control:      2.184ms (+/-155.53us)         30
  Test:         2.059ms (+/-128.84us)         10

-5.82% fop/iterations p=0.04415
  Control:      8.333   (+/-  0.61  )         30
  Test:         7.875   (+/-  0.57  )         10

I do not have a good explanation for why aarch64 does not show similar improvement in extremem metrics:

   Control: shenandoah-aarch64-template
Experiment: enable-old-growth-triggers-gh-aarch64

                          Most impacted benchmarks |                              Most impacted metrics
-------------------------------------------------------------------------------------------------------
                           Genshen/extremem-phased |                                      trigger_spike
                Genshen/specjbb2015_weak_ref_patch |                             trigger_expedite_mixed
                               Genshen/specjbb2015 |                            customer_purchase_p99_9
                        Shenandoah/extremem-phased |                      customer_save_for_later_p99_9
                    Genshen/hyperalloc_a3072_o4096 |                                      trigger_learn


                                Only in experiment |                                    Only in control
-------------------------------------------------------------------------------------------------------
     hyperalloc_a2048_o2048/trigger_expedite_mixed |                 scimark.fft.large/cmr_thread_roots
     hyperalloc_a2048_o4096/trigger_expedite_mixed |              scimark.sparse.small/cmr_thread_roots
     hyperalloc_a3072_o2048/trigger_expedite_mixed |                   compress/concurrent_thread_roots
     hyperalloc_a3072_o4096/trigger_expedite_mixed |       scimark.sparse.small/concurrent_thread_roots
                 extremem-phased/trigger_overgrown |                        crypto.rsa/ctr_thread_roots

Genshen
-------------------------------------------------------------------------------------------------------
+526.47% specjbb2015_weak_ref_patch/trigger_expedite_mixed p=0.00000
  Control:      2.833   (+/-  0.97  )         30
  Test:        17.750   (+/-  6.27  )         10

+484.62% specjbb2015/trigger_expedite_mixed p=0.00000
  Control:      3.250   (+/-  0.86  )         30
  Test:        19.000   (+/-  3.00  )         10

+172.37% extremem-phased/trigger_expedite_mixed p=0.00000
  Control:      9.500   (+/-  2.48  )         30
  Test:        25.875   (+/-  1.05  )         10

+115.80% extremem-phased/customer_replacement_p100 p=0.00741
  Control:      1.365s  (+/-  1.65s )         30
  Test:         2.947s  (+/-  1.01s )         10

+110.64% extremem-phased/browsing_history_p100 p=0.00092
  Control:      1.673s  (+/-  2.04s )         30
  Test:         3.524s  (+/-949.61ms)         10

+62.44% extremem-phased/product_replacement_p100 p=0.00909
  Control:      2.018s  (+/-  2.09s )         30
  Test:         3.279s  (+/-822.89ms)         10

+50.72% extremem-phased/customer_preparation_p99_9 p=0.00569
  Control:      2.755s  (+/-  2.33s )         30
  Test:         4.153s  (+/-482.67ms)         10

+50.00% hyperalloc_a3072_o4096/trigger_failure p=0.00001
  Control:      6.167   (+/-  1.46  )         30
  Test:         9.250   (+/-  1.75  )         10

+49.06% extremem-phased/customer_abandonment_p99_9 p=0.00597
  Control:      2.731s  (+/-  2.29s )         30
  Test:         4.071s  (+/-265.97ms)         10

+47.96% extremem-phased/customer_purchase_p99_9 p=0.00799
  Control:      2.699s  (+/-  2.25s )         30
  Test:         3.993s  (+/-229.72ms)         10

-376.43% specjbb2015_weak_ref_patch/concurrent_marking_old p=0.00000
  Control:      1.243s  (+/-406.88ms)         36
  Test:       260.798ms (+/-478.72ms)        542

-374.95% specjbb2015_weak_ref_patch/cm_total_old p=0.00000
  Control:      2.443s  (+/-802.00ms)         35
  Test:       514.416ms (+/-955.60ms)        541

-374.95% specjbb2015_weak_ref_patch/cm_parallel_mark_old p=0.00000
  Control:      2.443s  (+/-802.00ms)         35
  Test:       514.416ms (+/-955.60ms)        541

-140.00% eclipse/trigger_spike p=0.00088
  Control:      2.400   (+/-  1.44  )         24
  Test:         1.000   (+/-  0.00  )          7

-40.36% specjbb2015/trigger_spike p=0.00000
  Control:    119.833   (+/- 12.27  )         30
  Test:        85.375   (+/- 13.40  )         10

-39.37% specjbb2015_weak_ref_patch/trigger_spike p=0.00000
  Control:    124.042   (+/- 17.32  )         30
  Test:        89.000   (+/- 10.03  )         10

-19.93% extremem-phased/trigger_spike p=0.01121
  Control:     26.833   (+/-  5.04  )         30
  Test:        22.375   (+/-  2.99  )         10

-17.50% specjbb2015_weak_ref_patch/sla_100000_jops p=0.00002
  Control:   6127.125   (+/-423.49  )         30
  Test:      5214.375   (+/-583.96  )         10

-17.37% eclipse/context_switch_count p=0.00696
  Control:   7000.875   (+/-1522.26  )         30
  Test:      5964.625   (+/-1001.65  )         10

-16.36% specjbb2015_weak_ref_patch/sla_75000_jops p=0.00525
  Control:   5821.708   (+/-587.53  )         30
  Test:      5003.250   (+/-702.26  )         10


Shenandoah
-------------------------------------------------------------------------------------------------------
+5.25% specjbb2015_weak_ref_patch/fa_thread_roots p=0.00000
  Control:      2.410ms (+/-179.15us)        488
  Test:         2.537ms (+/-131.13us)         68

-49.81% extremem-phased/customer_save_for_later_p99_9 p=0.00988
  Control:      1.333s  (+/-363.67ms)         30
  Test:       889.507ms (+/-368.39ms)         10

-45.63% extremem-phased/customer_purchase_p99_9 p=0.01159
  Control:      1.306s  (+/-359.26ms)         30
  Test:       896.610ms (+/-370.49ms)         10

-41.96% diluvian_medium/context_switch_count p=0.01303
  Control:    101.500   (+/- 30.13  )         30
  Test:        71.500   (+/- 18.40  )         10

-20.89% extremem-phased/customer_preparation_p100 p=0.03521
  Control:      1.768s  (+/-375.37ms)         30
  Test:         1.463s  (+/-333.95ms)         10

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

Commit messages:
 - Add a jtreg test for old growth trigger
 - Re-enable old-growth trigger
 - Make satb-mode Info logging less verbose
 - Merge branch 'openjdk:master' into master
 - Merge branch 'openjdk:master' into master
 - Revert "Round LAB sizes down rather than up to force alignment"
 - Round LAB sizes down rather than up to force alignment
 - Revert "Remove dead code for inelastic plabs"
 - Remove dead code for inelastic plabs

Changes: https://git.openjdk.org/shenandoah/pull/409/files
  Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=409&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8328307
  Stats: 149 lines in 3 files changed: 114 ins; 2 del; 33 mod
  Patch: https://git.openjdk.org/shenandoah/pull/409.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/409/head:pull/409

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


More information about the shenandoah-dev mailing list