527 bool SafepointSynchronize::is_cleanup_needed() {
528 // Need a safepoint if some inline cache buffers is non-empty
529 if (!InlineCacheBuffer::is_empty()) return true;
530 return false;
531 }
532
533 static void event_safepoint_cleanup_task_commit(EventSafepointCleanupTask& event, const char* name) {
534 if (event.should_commit()) {
535 event.set_safepointId(SafepointSynchronize::safepoint_counter());
536 event.set_name(name);
537 event.commit();
538 }
539 }
540
541 // Various cleaning tasks that should be done periodically at safepoints
542 void SafepointSynchronize::do_cleanup_tasks() {
543 {
544 const char* name = "deflating idle monitors";
545 EventSafepointCleanupTask event;
546 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup));
547 ObjectSynchronizer::deflate_idle_monitors();
548 event_safepoint_cleanup_task_commit(event, name);
549 }
550
551 {
552 const char* name = "updating inline caches";
553 EventSafepointCleanupTask event;
554 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup));
555 InlineCacheBuffer::update_inline_caches();
556 event_safepoint_cleanup_task_commit(event, name);
557 }
558 {
559 const char* name = "compilation policy safepoint handler";
560 EventSafepointCleanupTask event;
561 TraceTime timer("compilation policy safepoint handler", TRACETIME_LOG(Info, safepoint, cleanup));
562 CompilationPolicy::policy()->do_safepoint_work();
563 event_safepoint_cleanup_task_commit(event, name);
564 }
565
566 {
567 const char* name = "mark nmethods";
|
527 bool SafepointSynchronize::is_cleanup_needed() {
528 // Need a safepoint if some inline cache buffers is non-empty
529 if (!InlineCacheBuffer::is_empty()) return true;
530 return false;
531 }
532
533 static void event_safepoint_cleanup_task_commit(EventSafepointCleanupTask& event, const char* name) {
534 if (event.should_commit()) {
535 event.set_safepointId(SafepointSynchronize::safepoint_counter());
536 event.set_name(name);
537 event.commit();
538 }
539 }
540
541 // Various cleaning tasks that should be done periodically at safepoints
542 void SafepointSynchronize::do_cleanup_tasks() {
543 {
544 const char* name = "deflating idle monitors";
545 EventSafepointCleanupTask event;
546 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup));
547 ObjectSynchronizer::do_safepoint_work();
548 event_safepoint_cleanup_task_commit(event, name);
549 }
550
551 {
552 const char* name = "updating inline caches";
553 EventSafepointCleanupTask event;
554 TraceTime timer(name, TRACETIME_LOG(Info, safepoint, cleanup));
555 InlineCacheBuffer::update_inline_caches();
556 event_safepoint_cleanup_task_commit(event, name);
557 }
558 {
559 const char* name = "compilation policy safepoint handler";
560 EventSafepointCleanupTask event;
561 TraceTime timer("compilation policy safepoint handler", TRACETIME_LOG(Info, safepoint, cleanup));
562 CompilationPolicy::policy()->do_safepoint_work();
563 event_safepoint_cleanup_task_commit(event, name);
564 }
565
566 {
567 const char* name = "mark nmethods";
|