< prev index next >
src/share/vm/gc/parallel/gcTaskManager.cpp
Print this page
@@ -25,10 +25,11 @@
#include "precompiled.hpp"
#include "gc/parallel/gcTaskManager.hpp"
#include "gc/parallel/gcTaskThread.hpp"
#include "gc/shared/adaptiveSizePolicy.hpp"
#include "gc/shared/gcId.hpp"
+#include "logging/log.hpp"
#include "memory/allocation.hpp"
#include "memory/allocation.inline.hpp"
#include "runtime/mutex.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.inline.hpp"
@@ -463,17 +464,15 @@
assert(!all_workers_active() || active_workers() == ParallelGCThreads,
"all_workers_active() is incorrect: "
"active %d ParallelGCThreads %u", active_workers(),
ParallelGCThreads);
- if (TraceDynamicGCThreads) {
- gclog_or_tty->print_cr("GCTaskManager::set_active_gang(): "
+ log_trace(gc, task)("GCTaskManager::set_active_gang(): "
"all_workers_active() %d workers %d "
"active %d ParallelGCThreads %u",
all_workers_active(), workers(), active_workers(),
ParallelGCThreads);
- }
}
// Create IdleGCTasks for inactive workers.
// Creates tasks in a ResourceArea and assumes
// an appropriate ResourceMark.
@@ -500,20 +499,17 @@
if (more_inactive_workers < 0) {
int reduced_active_workers = active_workers() + more_inactive_workers;
set_active_workers(reduced_active_workers);
more_inactive_workers = 0;
}
- if (TraceDynamicGCThreads) {
- gclog_or_tty->print_cr("JT: %d workers %d active %d "
- "idle %d more %d",
+ log_trace(gc, task)("JT: %d workers %d active %d idle %d more %d",
Threads::number_of_non_daemon_threads(),
workers(),
active_workers(),
idle_workers(),
more_inactive_workers);
}
- }
GCTaskQueue* q = GCTaskQueue::create();
for(uint i = 0; i < (uint) more_inactive_workers; i++) {
q->enqueue(IdleGCTask::create_on_c_heap());
increment_idle_workers();
}
@@ -534,10 +530,13 @@
// Release monitor
}
}
void GCTaskManager::print_task_time_stamps() {
+ if (!Log<LOG_TAGS(gc, task, time)>::is_debug()) {
+ return;
+ }
for(uint i=0; i<ParallelGCThreads; i++) {
GCTaskThread* t = thread(i);
t->print_task_time_stamps();
}
}
@@ -826,42 +825,28 @@
return result;
}
void IdleGCTask::do_it(GCTaskManager* manager, uint which) {
WaitHelper* wait_helper = manager->wait_helper();
- if (TraceGCTaskManager) {
- tty->print_cr("[" INTPTR_FORMAT "]"
- " IdleGCTask:::do_it()"
- " should_wait: %s",
+ log_trace(gc, task)("[" INTPTR_FORMAT "] IdleGCTask:::do_it() should_wait: %s",
p2i(this), wait_helper->should_wait() ? "true" : "false");
- }
+
MutexLockerEx ml(manager->monitor(), Mutex::_no_safepoint_check_flag);
- if (TraceDynamicGCThreads) {
- gclog_or_tty->print_cr("--- idle %d", which);
- }
+ log_trace(gc, task)("--- idle %d", which);
// Increment has to be done when the idle tasks are created.
// manager->increment_idle_workers();
manager->monitor()->notify_all();
while (wait_helper->should_wait()) {
- if (TraceGCTaskManager) {
- tty->print_cr("[" INTPTR_FORMAT "]"
- " IdleGCTask::do_it()"
- " [" INTPTR_FORMAT "] (%s)->wait()",
+ log_trace(gc, task)("[" INTPTR_FORMAT "] IdleGCTask::do_it() [" INTPTR_FORMAT "] (%s)->wait()",
p2i(this), p2i(manager->monitor()), manager->monitor()->name());
- }
manager->monitor()->wait(Mutex::_no_safepoint_check_flag, 0);
}
manager->decrement_idle_workers();
- if (TraceDynamicGCThreads) {
- gclog_or_tty->print_cr("--- release %d", which);
- }
- if (TraceGCTaskManager) {
- tty->print_cr("[" INTPTR_FORMAT "]"
- " IdleGCTask::do_it() returns"
- " should_wait: %s",
+
+ log_trace(gc, task)("--- release %d", which);
+ log_trace(gc, task)("[" INTPTR_FORMAT "] IdleGCTask::do_it() returns should_wait: %s",
p2i(this), wait_helper->should_wait() ? "true" : "false");
- }
// Release monitor().
}
void IdleGCTask::destroy(IdleGCTask* that) {
if (that != NULL) {
< prev index next >