# HG changeset patch # User sjohanss # Date 1412583073 -7200 # Node ID d3fd732958857a52d5ebbedc265fb074d6bc4ac8 # Parent 4001310db3f5f8a215d19767d7d2c77186b912fb 8059466: Force young GC to initiate marking cycle when stat update is requested Summary: Enable yc to be forced for stat update. Reviewed-by: mgerdin, jcoomes diff -r 4001310db3f5 -r d3fd73295885 src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Nov 21 09:57:00 2013 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Mon Oct 06 10:11:13 2014 +0200 @@ -2343,6 +2343,7 @@ case GCCause::_gc_locker: return GCLockerInvokesConcurrent; case GCCause::_java_lang_system_gc: return ExplicitGCInvokesConcurrent; case GCCause::_g1_humongous_allocation: return true; + case GCCause::_update_allocation_context_stats_inc: return true; default: return false; } } diff -r 4001310db3f5 -r d3fd73295885 src/share/vm/gc_implementation/g1/vm_operations_g1.cpp --- a/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Thu Nov 21 09:57:00 2013 -0800 +++ b/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp Mon Oct 06 10:11:13 2014 +0200 @@ -95,8 +95,9 @@ assert(!_should_initiate_conc_mark || ((_gc_cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) || (_gc_cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent) || - _gc_cause == GCCause::_g1_humongous_allocation), - "only a GC locker, a System.gc() or a hum allocation induced GC should start a cycle"); + _gc_cause == GCCause::_g1_humongous_allocation || + _gc_cause == GCCause::_update_allocation_context_stats_inc), + "only a GC locker, a System.gc(), stats update or a hum allocation induced GC should start a cycle"); if (_word_size > 0) { // An allocation has been requested. So, try to do that first. diff -r 4001310db3f5 -r d3fd73295885 src/share/vm/gc_interface/gcCause.cpp --- a/src/share/vm/gc_interface/gcCause.cpp Thu Nov 21 09:57:00 2013 -0800 +++ b/src/share/vm/gc_interface/gcCause.cpp Mon Oct 06 10:11:13 2014 +0200 @@ -54,7 +54,8 @@ case _wb_young_gc: return "WhiteBox Initiated Young GC"; - case _update_allocation_context_stats: + case _update_allocation_context_stats_inc: + case _update_allocation_context_stats_full: return "Update Allocation Context Stats"; case _no_gc: diff -r 4001310db3f5 -r d3fd73295885 src/share/vm/gc_interface/gcCause.hpp --- a/src/share/vm/gc_interface/gcCause.hpp Thu Nov 21 09:57:00 2013 -0800 +++ b/src/share/vm/gc_interface/gcCause.hpp Mon Oct 06 10:11:13 2014 +0200 @@ -47,7 +47,8 @@ _heap_inspection, _heap_dump, _wb_young_gc, - _update_allocation_context_stats, + _update_allocation_context_stats_inc, + _update_allocation_context_stats_full, /* implementation independent, but reserved for GC use */ _no_gc,