mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
8059466: Force young GC to initiate marking cycle when stat update is requested
Enable yc to be forced for stat update. Reviewed-by: mgerdin, jcoomes
This commit is contained in:
parent
4a82f3067a
commit
18eb46eb95
4 changed files with 8 additions and 4 deletions
|
@ -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() {
|
||||||
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) {
|
||||||
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 {
|
||||||
_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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue