< prev index next >
src/hotspot/share/gc/shenandoah/shenandoahHeuristics.hpp
Print this page
rev 58150 : 8239904: Shenandoah: accumulated penalties should not be over 100% of capacity
Reviewed-by: XXX
*** 65,75 ****
class ShenandoahCollectionSet;
class ShenandoahHeapRegion;
class ShenandoahHeuristics : public CHeapObj<mtGC> {
! static const intx Concurrent_Adjust = 1; // recover from penalties
static const intx Degenerated_Penalty = 10; // how much to penalize average GC duration history on Degenerated GC
static const intx Full_Penalty = 20; // how much to penalize average GC duration history on Full GC
protected:
typedef struct {
--- 65,75 ----
class ShenandoahCollectionSet;
class ShenandoahHeapRegion;
class ShenandoahHeuristics : public CHeapObj<mtGC> {
! static const intx Concurrent_Adjust = -1; // recover from penalties
static const intx Degenerated_Penalty = 10; // how much to penalize average GC duration history on Degenerated GC
static const intx Full_Penalty = 20; // how much to penalize average GC duration history on Full GC
protected:
typedef struct {
*** 91,101 ****
double _cycle_start;
double _last_cycle_end;
size_t _gc_times_learned;
! size_t _gc_time_penalties;
TruncatedSeq* _gc_time_history;
// There may be many threads that contend to set this flag
ShenandoahSharedFlag _metaspace_oom;
--- 91,101 ----
double _cycle_start;
double _last_cycle_end;
size_t _gc_times_learned;
! intx _gc_time_penalties;
TruncatedSeq* _gc_time_history;
// There may be many threads that contend to set this flag
ShenandoahSharedFlag _metaspace_oom;
*** 108,117 ****
--- 108,119 ----
virtual void choose_collection_set_from_regiondata(ShenandoahCollectionSet* set,
RegionData* data, size_t data_size,
size_t free) = 0;
+ void adjust_penalty(intx step);
+
public:
ShenandoahHeuristics();
virtual ~ShenandoahHeuristics();
void record_gc_start();
< prev index next >