comparison src/share/vm/runtime/safepoint.cpp @ 8001:db9981fd3124

8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS Summary: Rename INCLUDE_ALTERNATE_GCS to INCLUDE_ALL_GCS and replace SERIALGC with INCLUDE_ALL_GCS. Reviewed-by: coleenp, stefank
author jprovino
date Wed, 23 Jan 2013 13:02:39 -0500
parents f34d701e952e
children 5fc51c1ecdeb cc32ccaaf47f
comparison
equal deleted inserted replaced
7619:46e60405583b 8001:db9981fd3124
50 #include "runtime/synchronizer.hpp" 50 #include "runtime/synchronizer.hpp"
51 #include "runtime/thread.inline.hpp" 51 #include "runtime/thread.inline.hpp"
52 #include "services/memTracker.hpp" 52 #include "services/memTracker.hpp"
53 #include "services/runtimeService.hpp" 53 #include "services/runtimeService.hpp"
54 #include "utilities/events.hpp" 54 #include "utilities/events.hpp"
55 #include "utilities/macros.hpp"
55 #ifdef TARGET_ARCH_x86 56 #ifdef TARGET_ARCH_x86
56 # include "nativeInst_x86.hpp" 57 # include "nativeInst_x86.hpp"
57 # include "vmreg_x86.inline.hpp" 58 # include "vmreg_x86.inline.hpp"
58 #endif 59 #endif
59 #ifdef TARGET_ARCH_sparc 60 #ifdef TARGET_ARCH_sparc
70 #endif 71 #endif
71 #ifdef TARGET_ARCH_ppc 72 #ifdef TARGET_ARCH_ppc
72 # include "nativeInst_ppc.hpp" 73 # include "nativeInst_ppc.hpp"
73 # include "vmreg_ppc.inline.hpp" 74 # include "vmreg_ppc.inline.hpp"
74 #endif 75 #endif
75 #ifndef SERIALGC 76 #if INCLUDE_ALL_GCS
76 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" 77 #include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp"
77 #include "gc_implementation/shared/concurrentGCThread.hpp" 78 #include "gc_implementation/shared/concurrentGCThread.hpp"
78 #endif 79 #endif // INCLUDE_ALL_GCS
79 #ifdef COMPILER1 80 #ifdef COMPILER1
80 #include "c1/c1_globals.hpp" 81 #include "c1/c1_globals.hpp"
81 #endif 82 #endif
82 83
83 // -------------------------------------------------------------------------------------------------- 84 // --------------------------------------------------------------------------------------------------
101 if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) { 102 if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) {
102 _safepoint_begin_time = os::javaTimeNanos(); 103 _safepoint_begin_time = os::javaTimeNanos();
103 _ts_of_current_safepoint = tty->time_stamp().seconds(); 104 _ts_of_current_safepoint = tty->time_stamp().seconds();
104 } 105 }
105 106
106 #ifndef SERIALGC 107 #if INCLUDE_ALL_GCS
107 if (UseConcMarkSweepGC) { 108 if (UseConcMarkSweepGC) {
108 // In the future we should investigate whether CMS can use the 109 // In the future we should investigate whether CMS can use the
109 // more-general mechanism below. DLD (01/05). 110 // more-general mechanism below. DLD (01/05).
110 ConcurrentMarkSweepThread::synchronize(false); 111 ConcurrentMarkSweepThread::synchronize(false);
111 } else if (UseG1GC) { 112 } else if (UseG1GC) {
112 ConcurrentGCThread::safepoint_synchronize(); 113 ConcurrentGCThread::safepoint_synchronize();
113 } 114 }
114 #endif // SERIALGC 115 #endif // INCLUDE_ALL_GCS
115 116
116 // By getting the Threads_lock, we assure that no threads are about to start or 117 // By getting the Threads_lock, we assure that no threads are about to start or
117 // exit. It is released again in SafepointSynchronize::end(). 118 // exit. It is released again in SafepointSynchronize::end().
118 Threads_lock->lock(); 119 Threads_lock->lock();
119 120
478 // Release threads lock, so threads can be created/destroyed again. It will also starts all threads 479 // Release threads lock, so threads can be created/destroyed again. It will also starts all threads
479 // blocked in signal_thread_blocked 480 // blocked in signal_thread_blocked
480 Threads_lock->unlock(); 481 Threads_lock->unlock();
481 482
482 } 483 }
483 #ifndef SERIALGC 484 #if INCLUDE_ALL_GCS
484 // If there are any concurrent GC threads resume them. 485 // If there are any concurrent GC threads resume them.
485 if (UseConcMarkSweepGC) { 486 if (UseConcMarkSweepGC) {
486 ConcurrentMarkSweepThread::desynchronize(false); 487 ConcurrentMarkSweepThread::desynchronize(false);
487 } else if (UseG1GC) { 488 } else if (UseG1GC) {
488 ConcurrentGCThread::safepoint_desynchronize(); 489 ConcurrentGCThread::safepoint_desynchronize();
489 } 490 }
490 #endif // SERIALGC 491 #endif // INCLUDE_ALL_GCS
491 // record this time so VMThread can keep track how much time has elasped 492 // record this time so VMThread can keep track how much time has elasped
492 // since last safepoint. 493 // since last safepoint.
493 _end_of_last_safepoint = os::javaTimeMillis(); 494 _end_of_last_safepoint = os::javaTimeMillis();
494 } 495 }
495 496