changeset 6720:d3fd73295885

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
author sjohanss
date Mon, 06 Oct 2014 10:11:13 +0200
parents 4001310db3f5
children 1b61c1b7b519
files src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp src/share/vm/gc_implementation/g1/vm_operations_g1.cpp src/share/vm/gc_interface/gcCause.cpp src/share/vm/gc_interface/gcCause.hpp
diffstat 4 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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;
   }
 }
--- 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.
--- 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:
--- 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,