< prev index next >

src/share/vm/gc/parallel/gcTaskManager.cpp

Print this page
rev 11508 : 8157240: GC task trace logging is incomprehensible
Reviewed-by: tschatzl
rev 11509 : [mq]: code_review1


 382   GCTaskThread* new_worker = GCTaskThread::create(this, t, _processor_assignment[t]);
 383   set_thread(t, new_worker);
 384   return new_worker;
 385 }
 386 
 387 void GCTaskManager::add_workers(bool initializing) {
 388   os::ThreadType worker_type = os::pgc_thread;
 389   uint previous_created_workers = _created_workers;
 390 
 391   _created_workers = WorkerManager::add_workers(this,
 392                                                 _active_workers,
 393                                                 (uint) _workers,
 394                                                 _created_workers,
 395                                                 worker_type,
 396                                                 initializing);
 397   _active_workers = MIN2(_created_workers, _active_workers);
 398 
 399   WorkerManager::log_worker_creation(this, previous_created_workers, _active_workers, _created_workers, initializing);
 400 }
 401 
 402 char *GCTaskManager::worker_name(uint which) {
 403   if (thread(which) != NULL) {
 404     return thread(which)->name();
 405   } else {
 406     return NULL;
 407   }
 408 }
 409 
 410 void GCTaskManager::initialize() {
 411   if (TraceGCTaskManager) {
 412     tty->print_cr("GCTaskManager::initialize: workers: %u", workers());
 413   }
 414   assert(workers() != 0, "no workers");
 415   _monitor = new Monitor(Mutex::barrier,                // rank
 416                          "GCTaskManager monitor",       // name
 417                          Mutex::_allow_vm_block_flag,   // allow_vm_block
 418                          Monitor::_safepoint_check_never);
 419   // The queue for the GCTaskManager must be a CHeapObj.
 420   GCTaskQueue* unsynchronized_queue = GCTaskQueue::create_on_c_heap();
 421   _queue = SynchronizedGCTaskQueue::create(unsynchronized_queue, lock());
 422   _noop_task = NoopGCTask::create_on_c_heap();
 423   _resource_flag = NEW_C_HEAP_ARRAY(bool, workers(), mtGC);
 424   {
 425     // Set up worker threads.
 426     //     Distribute the workers among the available processors,
 427     //     unless we were told not to, or if the os doesn't want to.




 382   GCTaskThread* new_worker = GCTaskThread::create(this, t, _processor_assignment[t]);
 383   set_thread(t, new_worker);
 384   return new_worker;
 385 }
 386 
 387 void GCTaskManager::add_workers(bool initializing) {
 388   os::ThreadType worker_type = os::pgc_thread;
 389   uint previous_created_workers = _created_workers;
 390 
 391   _created_workers = WorkerManager::add_workers(this,
 392                                                 _active_workers,
 393                                                 (uint) _workers,
 394                                                 _created_workers,
 395                                                 worker_type,
 396                                                 initializing);
 397   _active_workers = MIN2(_created_workers, _active_workers);
 398 
 399   WorkerManager::log_worker_creation(this, previous_created_workers, _active_workers, _created_workers, initializing);
 400 }
 401 
 402 const char* GCTaskManager::group_name() {
 403   return GCTaskThread::task_name();




 404 }
 405 
 406 void GCTaskManager::initialize() {
 407   if (TraceGCTaskManager) {
 408     tty->print_cr("GCTaskManager::initialize: workers: %u", workers());
 409   }
 410   assert(workers() != 0, "no workers");
 411   _monitor = new Monitor(Mutex::barrier,                // rank
 412                          "GCTaskManager monitor",       // name
 413                          Mutex::_allow_vm_block_flag,   // allow_vm_block
 414                          Monitor::_safepoint_check_never);
 415   // The queue for the GCTaskManager must be a CHeapObj.
 416   GCTaskQueue* unsynchronized_queue = GCTaskQueue::create_on_c_heap();
 417   _queue = SynchronizedGCTaskQueue::create(unsynchronized_queue, lock());
 418   _noop_task = NoopGCTask::create_on_c_heap();
 419   _resource_flag = NEW_C_HEAP_ARRAY(bool, workers(), mtGC);
 420   {
 421     // Set up worker threads.
 422     //     Distribute the workers among the available processors,
 423     //     unless we were told not to, or if the os doesn't want to.


< prev index next >