32 #include "memory/universe.hpp" |
32 #include "memory/universe.hpp" |
33 #include "runtime/java.hpp" |
33 #include "runtime/java.hpp" |
34 #include "runtime/mutexLocker.hpp" |
34 #include "runtime/mutexLocker.hpp" |
35 #include "runtime/virtualspace.hpp" |
35 #include "runtime/virtualspace.hpp" |
36 #include "services/memTracker.hpp" |
36 #include "services/memTracker.hpp" |
|
37 #include "utilities/macros.hpp" |
37 #ifdef COMPILER1 |
38 #ifdef COMPILER1 |
38 #include "c1/c1_LIR.hpp" |
39 #include "c1/c1_LIR.hpp" |
39 #include "c1/c1_LIRGenerator.hpp" |
40 #include "c1/c1_LIRGenerator.hpp" |
40 #endif |
41 #endif |
41 |
42 |
497 // [16] G1CollectedHeap::do_collection_pause_at_safepoint() |
498 // [16] G1CollectedHeap::do_collection_pause_at_safepoint() |
498 // |
499 // |
499 int n_threads = SharedHeap::heap()->n_par_threads(); |
500 int n_threads = SharedHeap::heap()->n_par_threads(); |
500 bool is_par = n_threads > 0; |
501 bool is_par = n_threads > 0; |
501 if (is_par) { |
502 if (is_par) { |
502 #ifndef SERIALGC |
503 #if INCLUDE_ALL_GCS |
503 assert(SharedHeap::heap()->n_par_threads() == |
504 assert(SharedHeap::heap()->n_par_threads() == |
504 SharedHeap::heap()->workers()->active_workers(), "Mismatch"); |
505 SharedHeap::heap()->workers()->active_workers(), "Mismatch"); |
505 non_clean_card_iterate_parallel_work(sp, mr, cl, ct, n_threads); |
506 non_clean_card_iterate_parallel_work(sp, mr, cl, ct, n_threads); |
506 #else // SERIALGC |
507 #else // INCLUDE_ALL_GCS |
507 fatal("Parallel gc not supported here."); |
508 fatal("Parallel gc not supported here."); |
508 #endif // SERIALGC |
509 #endif // INCLUDE_ALL_GCS |
509 } else { |
510 } else { |
510 // We do not call the non_clean_card_iterate_serial() version below because |
511 // We do not call the non_clean_card_iterate_serial() version below because |
511 // we want to clear the cards (which non_clean_card_iterate_serial() does not |
512 // we want to clear the cards (which non_clean_card_iterate_serial() does not |
512 // do for us): clear_cl here does the work of finding contiguous dirty ranges |
513 // do for us): clear_cl here does the work of finding contiguous dirty ranges |
513 // of cards to process and clear. |
514 // of cards to process and clear. |