1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Wed Jul 10 15:28:43 2013 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Thu Jul 11 11:33:27 2013 +0200 1.3 @@ -873,7 +873,7 @@ 1.4 size_t alloc_byte_size = alloc_word_size * HeapWordSize; 1.5 1.6 if ((cur_used_bytes + alloc_byte_size) > marking_initiating_used_threshold) { 1.7 - if (gcs_are_young()) { 1.8 + if (gcs_are_young() && !_last_young_gc) { 1.9 ergo_verbose5(ErgoConcCycles, 1.10 "request concurrent cycle initiation", 1.11 ergo_format_reason("occupancy higher than threshold") 1.12 @@ -931,7 +931,7 @@ 1.13 last_pause_included_initial_mark = during_initial_mark_pause(); 1.14 if (last_pause_included_initial_mark) { 1.15 record_concurrent_mark_init_end(0.0); 1.16 - } else if (!_last_young_gc && need_to_start_conc_mark("end of GC")) { 1.17 + } else if (need_to_start_conc_mark("end of GC")) { 1.18 // Note: this might have already been set, if during the last 1.19 // pause we decided to start a cycle but at the beginning of 1.20 // this pause we decided to postpone it. That's OK.