8072913: [REDO] GCCause should distinguish jcmd GC.run from System.gc()

GCCause which is caused by GC.run diagnostic command should be different from System.gc() .

Reviewed-by: jmasa, jwilhelm
This commit is contained in:
Yasumasa Suenaga 2015-06-03 08:49:34 +09:00
parent c1fc7aa38a
commit 242ce54cc7
15 changed files with 34 additions and 19 deletions

View file

@ -254,9 +254,9 @@ void VM_GenCollectFullConcurrent::doit_epilogue() {
if (_gc_cause != GCCause::_gc_locker &&
gch->total_full_collections_completed() <= _full_gc_count_before) {
// maybe we should change the condition to test _gc_cause ==
// GCCause::_java_lang_system_gc, instead of
// _gc_cause != GCCause::_gc_locker
assert(_gc_cause == GCCause::_java_lang_system_gc,
// GCCause::_java_lang_system_gc or GCCause::_dcmd_gc_run,
// instead of _gc_cause != GCCause::_gc_locker
assert(GCCause::is_user_requested_gc(_gc_cause),
"the only way to get here if this was a System.gc()-induced GC");
assert(ExplicitGCInvokesConcurrent, "Error");
// Now, wait for witnessing concurrent gc cycle to complete,