OpenJDK / amber / amber
changeset 26807:843ea33eb963
8058461: serviceability/dcmd/CodelistTest.java and serviceability/dcmd/CompilerQueueTest.java SIGSEGV
Summary: Print only alive nmethods and add lock to print compile queue
Reviewed-by: kvn, anoll
author | neliasso |
---|---|
date | Mon, 15 Sep 2014 17:12:01 +0200 |
parents | 73f3e9ac86f5 |
children | b2a4db3243d6 |
files | hotspot/src/share/vm/compiler/compileBroker.cpp hotspot/src/share/vm/services/diagnosticCommand.hpp |
diffstat | 2 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hotspot/src/share/vm/compiler/compileBroker.cpp Thu Sep 18 09:37:26 2014 +0200 +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Mon Sep 15 17:12:01 2014 +0200 @@ -783,18 +783,22 @@ void CompileBroker::print_compile_queues(outputStream* st) { - _c1_compile_queue->print(st); - _c2_compile_queue->print(st); + MutexLocker locker(MethodCompileQueue_lock); + if (_c1_compile_queue != NULL) { + _c1_compile_queue->print(st); + } + if (_c2_compile_queue != NULL) { + _c2_compile_queue->print(st); + } } - void CompileQueue::print(outputStream* st) { - assert_locked_or_safepoint(lock()); + assert(lock()->owned_by_self(), "must own lock"); st->print_cr("Contents of %s", name()); st->print_cr("----------------------------"); CompileTask* task = _first; if (task == NULL) { - st->print_cr("Empty");; + st->print_cr("Empty"); } else { while (task != NULL) { task->print_compilation(st, NULL, true, true);
--- a/hotspot/src/share/vm/services/diagnosticCommand.hpp Thu Sep 18 09:37:26 2014 +0200 +++ b/hotspot/src/share/vm/services/diagnosticCommand.hpp Mon Sep 15 17:12:01 2014 +0200 @@ -427,7 +427,7 @@ return "Compiler.codelist"; } static const char* description() { - return "Print all compiled methods in code cache."; + return "Print all compiled methods in code cache that are alive"; } static const char* impact() { return "Medium";