Withdrawn: 8321149: GenShen: Test for is_good_progress() following degen needs to sum all available memory

Kelvin Nilsen kdnilsen at openjdk.org
Sat Dec 2 00:40:16 UTC 2023


On Fri, 1 Dec 2023 15:51:34 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

> This reduces the sensitivity of the trigger that upgrades to Full GC following a completed degenerated GC.  The change was motivated by examination of a test workload that required one more full GC and one more degenerated GC than was expected.  Upon examination of the GC log, it was determined that the extra Full GC was triggered because the mutator free set following degen was approximately 10% below the critical threshold, even though the total available memory within heap was more than three fold the critical threshold.  
> 
> Following this change, no Full GCs were required and one fewer degenerated cycle was required (which had occurred immediately following the Full GC due to the long unproductive STW the pause caused by Full GC).  P50 latency improved by 15%, and p100 latencies improved by over 100 fold.
> 
> More comprehensive testing over a broader set of workloads reveals this change is not "universally better".  Of particular concern is degradation of specjbb numbers on x86, but not aarch64, tests.  I'm inclined to believe this change represents net improvement, but it would be best to delay integration until we have a better understanding of specjbb performance issues, and how they might be impacted by this change.
> 
> 
> 
>    Control: shenandoah-x86-template
> Experiment: fix-is-good-progress-gh-x86
> 
>                           Most impacted benchmarks |                              Most impacted metrics
> -------------------------------------------------------------------------------------------------------
>                                Genshen/specjbb2015 |                                         cpu_system
>                                      Shenandoah/h2 |                              concurrent_evacuation
>                             Genshen/diluvian_large |                             transfer_old_from_satb
>                                  Shenandoah/serial |                                      critical_jops
>                         Genshen/extremem-large-45g |                                      trigger_learn
> 
> 
>                                 Only in experiment |                                    Only in control
> -------------------------------------------------------------------------------------------------------
>                        extremem-ff/trigger_failure |            scimark.fft.small/concurrent_evacuation
>                                   tomcat/cwr_total |           scimark.lu.large/concurrent_strong_roots
>                     extremem-ff/de...

This pull request has been closed without being integrated.

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

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


More information about the shenandoah-dev mailing list