RFR: Changes to simplify MU accounting

Kelvin Nilsen kdnilsen at openjdk.org
Tue May 23 20:30:31 UTC 2023


On Thu, 11 May 2023 22:11:13 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> This represents a small part of the expand-old-on-demand branch.  By itself, this may result in some performance regression because we no longer use MU (mutator utilization) reports to guide generation sizing decisions.  On the other hand, the guidance provided by MU metrics does not seem to be a very accurate predictor of ideal generation sizes.
>
> src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp line 138:
> 
>> 136:                                                         bool has_old_candidates) {
>> 137:   // No special processing for old marking
>> 138:   double duration = os::elapsedTime() - _most_recent_timestamp;
> 
> We only seem to use `duration` here, none of the following lines produce any used values?

my mistake.  i've corrected the report to make use of all relevant information (in expand-old-on-demand).  Thanks.

> src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp line 158:
> 
>> 156:                                               uint gcid, bool is_old_bootstrap, bool is_mixed_done) {
>> 157:   if ((gcid == _most_recent_gcid) && _most_recent_is_full) {
>> 158:     // Do nothing.  This is a redundant recording for the full gc that just completed.
> 
> We have a redundant call here because some degenerated cycles become full cycles? Could we arrange for this to only be called once from each code path?

It's complicated.  I'll put a todo statement here to suggest future refactoring.

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/274#discussion_r1202962629
PR Review Comment: https://git.openjdk.org/shenandoah/pull/274#discussion_r1202963369


More information about the shenandoah-dev mailing list