--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Mon Nov 17 21:32:32 2014 +0100
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Tue Nov 18 10:23:26 2014 +0100
@@ -608,7 +608,6 @@
GCHeapSummary _last_heap_summary;
MetaspaceSummary _last_metaspace_summary;
- void register_foreground_gc_start(GCCause::Cause cause);
void register_gc_start(GCCause::Cause cause);
void register_gc_end();
void save_heap_summary();
@@ -695,8 +694,6 @@
int _numYields;
size_t _numDirtyCards;
size_t _sweep_count;
- // Number of full gc's since the last concurrent gc.
- uint _full_gcs_since_conc_gc;
// Occupancy used for bootstrapping stats
double _bootstrap_occupancy;
@@ -760,14 +757,14 @@
NOT_PRODUCT(bool par_simulate_overflow();) // MT version
// CMS work methods
- void checkpointRootsInitialWork(bool asynch); // Initial checkpoint work
+ void checkpointRootsInitialWork(); // Initial checkpoint work
// A return value of false indicates failure due to stack overflow
- bool markFromRootsWork(bool asynch); // Concurrent marking work
+ bool markFromRootsWork(); // Concurrent marking work
public: // FIX ME!!! only for testing
- bool do_marking_st(bool asynch); // Single-threaded marking
- bool do_marking_mt(bool asynch); // Multi-threaded marking
+ bool do_marking_st(); // Single-threaded marking
+ bool do_marking_mt(); // Multi-threaded marking
private:
@@ -788,20 +785,19 @@
void reset_survivor_plab_arrays();
// Final (second) checkpoint work
- void checkpointRootsFinalWork(bool asynch, bool clear_all_soft_refs,
- bool init_mark_was_synchronous);
+ void checkpointRootsFinalWork();
// Work routine for parallel version of remark
void do_remark_parallel();
// Work routine for non-parallel version of remark
void do_remark_non_parallel();
// Reference processing work routine (during second checkpoint)
- void refProcessingWork(bool asynch, bool clear_all_soft_refs);
+ void refProcessingWork();
// Concurrent sweeping work
- void sweepWork(ConcurrentMarkSweepGeneration* gen, bool asynch);
+ void sweepWork(ConcurrentMarkSweepGeneration* gen);
// (Concurrent) resetting of support data structures
- void reset(bool asynch);
+ void reset(bool concurrent);
// Clear _expansion_cause fields of constituent generations
void clear_expansion_cause();
@@ -810,22 +806,10 @@
// used regions of each generation to limit the extent of sweep
void save_sweep_limits();
- // A work method used by foreground collection to determine
- // what type of collection (compacting or not, continuing or fresh)
- // it should do.
- void decide_foreground_collection_type(bool clear_all_soft_refs,
- bool* should_compact, bool* should_start_over);
-
// A work method used by the foreground collector to do
// a mark-sweep-compact.
void do_compaction_work(bool clear_all_soft_refs);
- // A work method used by the foreground collector to do
- // a mark-sweep, after taking over from a possibly on-going
- // concurrent mark-sweep collection.
- void do_mark_sweep_work(bool clear_all_soft_refs,
- CollectorState first_state, bool should_start_over);
-
// Work methods for reporting concurrent mode interruption or failure
bool is_external_interruption();
void report_concurrent_mode_interruption();
@@ -868,15 +852,13 @@
// Locking checks
NOT_PRODUCT(static bool have_cms_token();)
- // XXXPERM bool should_collect(bool full, size_t size, bool tlab);
bool shouldConcurrentCollect();
void collect(bool full,
bool clear_all_soft_refs,
size_t size,
bool tlab);
- void collect_in_background(bool clear_all_soft_refs, GCCause::Cause cause);
- void collect_in_foreground(bool clear_all_soft_refs, GCCause::Cause cause);
+ void collect_in_background(GCCause::Cause cause);
// In support of ExplicitGCInvokesConcurrent
static void request_full_gc(unsigned int full_gc_count, GCCause::Cause cause);
@@ -928,18 +910,16 @@
void directAllocated(HeapWord* start, size_t size);
// Main CMS steps and related support
- void checkpointRootsInitial(bool asynch);
- bool markFromRoots(bool asynch); // a return value of false indicates failure
- // due to stack overflow
+ void checkpointRootsInitial();
+ bool markFromRoots(); // a return value of false indicates failure
+ // due to stack overflow
void preclean();
- void checkpointRootsFinal(bool asynch, bool clear_all_soft_refs,
- bool init_mark_was_synchronous);
- void sweep(bool asynch);
+ void checkpointRootsFinal();
+ void sweep();
// Check that the currently executing thread is the expected
// one (foreground collector or background collector).
static void check_correct_thread_executing() PRODUCT_RETURN;
- // XXXPERM void print_statistics() PRODUCT_RETURN;
bool is_cms_reachable(HeapWord* addr);
@@ -1060,14 +1040,7 @@
// In support of MinChunkSize being larger than min object size
const double _dilatation_factor;
- enum CollectionTypes {
- Concurrent_collection_type = 0,
- MS_foreground_collection_type = 1,
- MSC_foreground_collection_type = 2,
- Unknown_collection_type = 3
- };
-
- CollectionTypes _debug_collection_type;
+ bool _debug_concurrent_cycle;
// True if a compacting collection was done.
bool _did_compact;
@@ -1152,7 +1125,7 @@
// hack to allow the collection of the younger gen first if the flag is
// set.
virtual bool full_collects_younger_generations() const {
- return UseCMSCompactAtFullCollection && !ScavengeBeforeFullGC;
+ return !ScavengeBeforeFullGC;
}
void space_iterate(SpaceClosure* blk, bool usedOnly = false);
@@ -1296,7 +1269,7 @@
// collection.
void compute_new_size_free_list();
- CollectionTypes debug_collection_type() { return _debug_collection_type; }
+ bool debug_concurrent_cycle() { return _debug_concurrent_cycle; }
void rotate_debug_collection_type();
};
@@ -1344,7 +1317,6 @@
CMSBitMap* _mut;
OopTaskQueue* _work_queue;
CMSMarkStack* _overflow_stack;
- bool _yield;
int _skip_bits;
HeapWord* _finger;
HeapWord* _threshold;
@@ -1354,8 +1326,7 @@
MemRegion span,
CMSBitMap* bit_map,
OopTaskQueue* work_queue,
- CMSMarkStack* overflow_stack,
- bool should_yield);
+ CMSMarkStack* overflow_stack);
bool do_bit(size_t offset);
inline void do_yield_check();