RFR: Mixed evacuation [v6]

Kelvin Nilsen kdnilsen at openjdk.java.net
Wed Apr 21 21:29:42 UTC 2021


On Wed, 21 Apr 2021 10:56:37 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Change definition of CollectionThresholdGarbagePercent
>>   
>>   This is now defined to equal ShenandoahGarbageThreshold, which seems to have
>>   a default value of 25.  The effect on running workloads is to choose more
>>   regions for the collection set than was observed with the previous
>>   configuration.
>>   
>>   Also addressed several improvements in white space and comments.
>>   
>>   The code now runs tier1 and hotspot_gc_shenandoah without regressions.  It
>>   also succsessfully runs an Extremem stress test up until the point of
>>   failure due to triggering of full GC (after 113 completed GC passes, including
>>   two old-gen GC passes).
>
> src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveOldHeuristics.hpp line 29:
> 
>> 27: 
>> 28: #include "gc/shenandoah/heuristics/shenandoahOldHeuristics.hpp"
>> 29: #include "gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp"
> 
> I don't think you need to include shenandoahAdaptiveHeuristics.hpp here.

The reason for including is to provide definition of ShenandoahAllocationRate, which is used by both ShenandoahAdatpvieHeuristics and ShenandoahAdaptiveOldHeuristics.  The code will compile if I remove the include here, but insert it into shenandoahAdaptiveOldHeuristics.cpp.  That's how the new commit does it.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.cpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2018, 2019 Red Hat, Inc. All rights reserved.
> 
> Please don't remove the comma.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveOldHeuristics.cpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2018, 2019, 2021, Red Hat, Inc. All rights reserved.
> 
> Same as above. Only put in begin and end year.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahAggressiveOldHeuristics.hpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2018, 2019, 2021, Red Hat, Inc. All rights reserved.
> 
> Same as above.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactOldHeuristics.cpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2018, 2019, 2021, Red Hat, Inc. All rights reserved.
> 
> Same as above.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactOldHeuristics.hpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2018, 2019, 2021, Red Hat, Inc. All rights reserved.
> 
> Same as above.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp line 2:
> 
>> 1: /*
>> 2:  * Copyright (c) 2018, 2020, 2021, Red Hat, Inc. All rights reserved.
> 
> Same as above.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp line 167:
> 
>> 165:       old_heuristics->prime_collection_set(collection_set);
>> 166:     }
>> 167:     // else, thisi s global collection and doesn't need to prime_collection_set()
> 
> Typo here 'thisi s'

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp line 172:
> 
>> 170:   size_t collectable_garbage = collection_set->garbage() + immediate_garbage;
>> 171:   size_t collectable_garbage_percent = (total_garbage == 0) ? 0 : (collectable_garbage * 100 / total_garbage);
>> 172: 
> 
> Stray newline change.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp line 204:
> 
>> 202: 
>> 203: bool ShenandoahHeuristics::should_start_gc() {
>> 204: 
> 
> Stray newline change.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.hpp line 155:
> 
>> 153:   double time_since_last_gc() const;
>> 154: 
>> 155: 
> 
> Stray newlines.

Fixed in next commit.

> src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.cpp line 26:
> 
>> 24: 
>> 25: #include "gc/shenandoah/heuristics/shenandoahOldHeuristics.hpp"
>> 26: #include "precompiled.hpp"
> 
> Convention is to always put include for precompiled.hpp first.

Fixed in next commit.

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

PR: https://git.openjdk.java.net/shenandoah/pull/29


More information about the shenandoah-dev mailing list