提交 7d21d73e 编写于 作者: S sjohanss

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
上级 bc8163e0
...@@ -2343,6 +2343,7 @@ bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) { ...@@ -2343,6 +2343,7 @@ bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
case GCCause::_gc_locker: return GCLockerInvokesConcurrent; case GCCause::_gc_locker: return GCLockerInvokesConcurrent;
case GCCause::_java_lang_system_gc: return ExplicitGCInvokesConcurrent; case GCCause::_java_lang_system_gc: return ExplicitGCInvokesConcurrent;
case GCCause::_g1_humongous_allocation: return true; case GCCause::_g1_humongous_allocation: return true;
case GCCause::_update_allocation_context_stats_inc: return true;
default: return false; default: return false;
} }
} }
......
...@@ -95,8 +95,9 @@ void VM_G1IncCollectionPause::doit() { ...@@ -95,8 +95,9 @@ void VM_G1IncCollectionPause::doit() {
assert(!_should_initiate_conc_mark || assert(!_should_initiate_conc_mark ||
((_gc_cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) || ((_gc_cause == GCCause::_gc_locker && GCLockerInvokesConcurrent) ||
(_gc_cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent) || (_gc_cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent) ||
_gc_cause == GCCause::_g1_humongous_allocation), _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::_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) { if (_word_size > 0) {
// An allocation has been requested. So, try to do that first. // An allocation has been requested. So, try to do that first.
......
...@@ -54,7 +54,8 @@ const char* GCCause::to_string(GCCause::Cause cause) { ...@@ -54,7 +54,8 @@ const char* GCCause::to_string(GCCause::Cause cause) {
case _wb_young_gc: case _wb_young_gc:
return "WhiteBox Initiated 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"; return "Update Allocation Context Stats";
case _no_gc: case _no_gc:
......
...@@ -47,7 +47,8 @@ class GCCause : public AllStatic { ...@@ -47,7 +47,8 @@ class GCCause : public AllStatic {
_heap_inspection, _heap_inspection,
_heap_dump, _heap_dump,
_wb_young_gc, _wb_young_gc,
_update_allocation_context_stats, _update_allocation_context_stats_inc,
_update_allocation_context_stats_full,
/* implementation independent, but reserved for GC use */ /* implementation independent, but reserved for GC use */
_no_gc, _no_gc,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册