--- old/src/share/vm/gc/g1/g1CollectedHeap.hpp 2015-11-24 10:09:19.317618064 +0100 +++ new/src/share/vm/gc/g1/g1CollectedHeap.hpp 2015-11-24 10:09:19.213614039 +0100 @@ -244,9 +244,11 @@ // instead of doing a STW GC. Currently, a concurrent cycle is // explicitly started if: // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, or - // (b) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent. - // (c) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent. - // (d) cause == _g1_humongous_allocation + // (b) cause == _g1_humongous_allocation + // (c) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent. + // (d) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent. + // (e) cause == _update_allocation_context_stats_inc + // (f) cause == _wb_conc_mark bool should_do_concurrent_full_gc(GCCause::Cause cause); // indicates whether we are in young or mixed GC mode @@ -576,6 +578,8 @@ _in_cset_fast_test.clear(); } + bool is_user_requested_concurrent_full_gc(GCCause::Cause cause); + // This is called at the start of either a concurrent cycle or a Full // GC to update the number of old marking cycles started. void increment_old_marking_cycles_started();