< prev index next >
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
Print this page
rev 7209 : [mq]: inccms
*** 381,401 ****
_ALL_VALID = _GC0_VALID | _CMS_VALID
};
unsigned int _valid_bits;
- unsigned int _icms_duty_cycle; // icms duty cycle (0-100).
-
protected:
-
- // Return a duty cycle that avoids wild oscillations, by limiting the amount
- // of change between old_duty_cycle and new_duty_cycle (the latter is treated
- // as a recommended value).
- static unsigned int icms_damped_duty_cycle(unsigned int old_duty_cycle,
- unsigned int new_duty_cycle);
- unsigned int icms_update_duty_cycle_impl();
-
// In support of adjusting of cms trigger ratios based on history
// of concurrent mode failure.
double cms_free_adjustment_factor(size_t free) const;
void adjust_cms_free_adjustment_factor(bool fail, size_t free);
--- 381,391 ----
*** 456,471 ****
// the cms generation collection should start.
double time_until_cms_start() const;
// End of higher level statistics.
- // Returns the cms incremental mode duty cycle, as a percentage (0-100).
- unsigned int icms_duty_cycle() const { return _icms_duty_cycle; }
-
- // Update the duty cycle and return the new value.
- unsigned int icms_update_duty_cycle();
-
// Debugging.
void print_on(outputStream* st) const PRODUCT_RETURN;
void print() const { print_on(gclog_or_tty); }
};
--- 446,455 ----
*** 723,739 ****
elapsedTimer _timer;
// Timing, allocation and promotion statistics, used for scheduling.
CMSStats _stats;
- // Allocation limits installed in the young gen, used only in
- // CMSIncrementalMode. When an allocation in the young gen would cross one of
- // these limits, the cms generation is notified and the cms thread is started
- // or stopped, respectively.
- HeapWord* _icms_start_limit;
- HeapWord* _icms_stop_limit;
-
enum CMS_op_type {
CMS_op_checkpointRootsInitial,
CMS_op_checkpointRootsFinal
};
--- 707,716 ----
*** 865,878 ****
// it returns true and the background collection should assume
// that the collection was finished by the foreground
// collector.
bool waitForForegroundGC();
- // Incremental mode triggering: recompute the icms duty cycle and set the
- // allocation limits in the young gen.
- void icms_update_allocation_limits();
-
size_t block_size_using_printezis_bits(HeapWord* addr) const;
size_t block_size_if_printezis_bits(HeapWord* addr) const;
HeapWord* next_card_start_after_block(HeapWord* addr) const;
void setup_cms_unloading_and_verification_state();
--- 842,851 ----
*** 926,938 ****
// and if so the size of the object so it can be dirtied
// in its entirety.
void promoted(bool par, HeapWord* start,
bool is_obj_array, size_t obj_size);
- HeapWord* allocation_limit_reached(Space* space, HeapWord* top,
- size_t word_size);
-
void getFreelistLocks() const;
void releaseFreelistLocks() const;
bool haveFreelistLocks() const;
// Adjust size of underlying generation
--- 899,908 ----
*** 999,1016 ****
void increment_sweep_count() { _sweep_count++; }
// Timers/stats for gc scheduling and incremental mode pacing.
CMSStats& stats() { return _stats; }
- // Convenience methods that check whether CMSIncrementalMode is enabled and
- // forward to the corresponding methods in ConcurrentMarkSweepThread.
- static void start_icms();
- static void stop_icms(); // Called at the end of the cms cycle.
- static void disable_icms(); // Called before a foreground collection.
- static void enable_icms(); // Called after a foreground collection.
- void icms_wait(); // Called at yield points.
-
// Adaptive size policy
AdaptiveSizePolicy* size_policy();
static void print_on_error(outputStream* st);
--- 969,978 ----
*** 1209,1221 ****
oop promote(oop obj, size_t obj_size);
HeapWord* par_allocate(size_t size, bool tlab) {
return allocate(size, tlab);
}
- // Incremental mode triggering.
- HeapWord* allocation_limit_reached(Space* space, HeapWord* top,
- size_t word_size);
// Used by CMSStats to track direct allocation. The value is sampled and
// reset after each young gen collection.
size_t direct_allocated_words() const { return _direct_allocated_words; }
void reset_direct_allocated_words() { _direct_allocated_words = 0; }
--- 1171,1180 ----
< prev index next >