comparison src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp @ 1145:e018e6884bd8

6631166: CMS: better heuristics when combatting fragmentation Summary: Autonomic per-worker free block cache sizing, tunable coalition policies, fixes to per-size block statistics, retuned gain and bandwidth of some feedback loop filters to allow quicker reactivity to abrupt changes in ambient demand, and other heuristics to reduce fragmentation of the CMS old gen. Also tightened some assertions, including those related to locking. Reviewed-by: jmasa
author ysr
date Wed, 23 Dec 2009 09:23:54 -0800
parents 850fdf70db2b
children c18cbe5936b8
comparison
equal deleted inserted replaced
1111:44f61c24ddab 1145:e018e6884bd8
53 virtual void reset() = 0; 53 virtual void reset() = 0;
54 54
55 virtual void dictCensusUpdate(size_t size, bool split, bool birth) = 0; 55 virtual void dictCensusUpdate(size_t size, bool split, bool birth) = 0;
56 virtual bool coalDictOverPopulated(size_t size) = 0; 56 virtual bool coalDictOverPopulated(size_t size) = 0;
57 virtual void beginSweepDictCensus(double coalSurplusPercent, 57 virtual void beginSweepDictCensus(double coalSurplusPercent,
58 float sweep_current, float sweep_ewstimate) = 0; 58 float inter_sweep_current, float inter_sweep_estimate,
59 float intra__sweep_current) = 0;
59 virtual void endSweepDictCensus(double splitSurplusPercent) = 0; 60 virtual void endSweepDictCensus(double splitSurplusPercent) = 0;
60 virtual FreeChunk* findLargestDict() const = 0; 61 virtual FreeChunk* findLargestDict() const = 0;
61 // verify that the given chunk is in the dictionary. 62 // verify that the given chunk is in the dictionary.
62 virtual bool verifyChunkInFreeLists(FreeChunk* tc) const = 0; 63 virtual bool verifyChunkInFreeLists(FreeChunk* tc) const = 0;
63 64
77 virtual void reportStatistics() const { 78 virtual void reportStatistics() const {
78 gclog_or_tty->print("No statistics available"); 79 gclog_or_tty->print("No statistics available");
79 } 80 }
80 81
81 virtual void printDictCensus() const = 0; 82 virtual void printDictCensus() const = 0;
83 virtual void print_free_lists(outputStream* st) const = 0;
82 84
83 virtual void verify() const = 0; 85 virtual void verify() const = 0;
84 86
85 Mutex* par_lock() const PRODUCT_RETURN0; 87 Mutex* par_lock() const PRODUCT_RETURN0;
86 void set_par_lock(Mutex* lock) PRODUCT_RETURN; 88 void set_par_lock(Mutex* lock) PRODUCT_RETURN;