Mercurial > hg > graal-compiler
changeset 11125:f4311079200c
8020155: PSR:PERF G1 not collecting old regions when humongous allocations interfer
Summary: Take _last_young_gc into account when deciding on starting a concurrent mark. Also reviewed-by: per.liden@oracle.com.
Reviewed-by: tschatzl, johnc
author | brutisso |
---|---|
date | Thu, 11 Jul 2013 11:33:27 +0200 |
parents | 27c53c9f3a7e |
children | e7a47f226600 |
files | src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Wed Jul 10 15:28:43 2013 +0200 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Thu Jul 11 11:33:27 2013 +0200 @@ -873,7 +873,7 @@ size_t alloc_byte_size = alloc_word_size * HeapWordSize; if ((cur_used_bytes + alloc_byte_size) > marking_initiating_used_threshold) { - if (gcs_are_young()) { + if (gcs_are_young() && !_last_young_gc) { ergo_verbose5(ErgoConcCycles, "request concurrent cycle initiation", ergo_format_reason("occupancy higher than threshold") @@ -931,7 +931,7 @@ last_pause_included_initial_mark = during_initial_mark_pause(); if (last_pause_included_initial_mark) { record_concurrent_mark_init_end(0.0); - } else if (!_last_young_gc && need_to_start_conc_mark("end of GC")) { + } else if (need_to_start_conc_mark("end of GC")) { // Note: this might have already been set, if during the last // pause we decided to start a cycle but at the beginning of // this pause we decided to postpone it. That's OK.