hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp
changeset 31330 77061bb01b18
parent 31032 8e72621ca186
child 31331 a7c714b6cfb3
equal deleted inserted replaced
31236:d4d3011aa98e 31330:77061bb01b18
  1750   _workers->initialize_workers();
  1750   _workers->initialize_workers();
  1751 
  1751 
  1752   _allocator = G1Allocator::create_allocator(this);
  1752   _allocator = G1Allocator::create_allocator(this);
  1753   _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2;
  1753   _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2;
  1754 
  1754 
  1755   int n_queues = (int)ParallelGCThreads;
  1755   uint n_queues = ParallelGCThreads;
  1756   _task_queues = new RefToScanQueueSet(n_queues);
  1756   _task_queues = new RefToScanQueueSet(n_queues);
  1757 
  1757 
  1758   uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets();
  1758   uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets();
  1759   assert(n_rem_sets > 0, "Invariant.");
  1759   assert(n_rem_sets > 0, "Invariant.");
  1760 
  1760 
  1761   _worker_cset_start_region = NEW_C_HEAP_ARRAY(HeapRegion*, n_queues, mtGC);
  1761   _worker_cset_start_region = NEW_C_HEAP_ARRAY(HeapRegion*, n_queues, mtGC);
  1762   _worker_cset_start_region_time_stamp = NEW_C_HEAP_ARRAY(uint, n_queues, mtGC);
  1762   _worker_cset_start_region_time_stamp = NEW_C_HEAP_ARRAY(uint, n_queues, mtGC);
  1763   _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC);
  1763   _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC);
  1764 
  1764 
  1765   for (int i = 0; i < n_queues; i++) {
  1765   for (uint i = 0; i < n_queues; i++) {
  1766     RefToScanQueue* q = new RefToScanQueue();
  1766     RefToScanQueue* q = new RefToScanQueue();
  1767     q->initialize();
  1767     q->initialize();
  1768     _task_queues->register_queue(i, q);
  1768     _task_queues->register_queue(i, q);
  1769     ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo();
  1769     ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo();
  1770   }
  1770   }
  2062   // Concurrent Mark ref processor
  2062   // Concurrent Mark ref processor
  2063   _ref_processor_cm =
  2063   _ref_processor_cm =
  2064     new ReferenceProcessor(mr,    // span
  2064     new ReferenceProcessor(mr,    // span
  2065                            ParallelRefProcEnabled && (ParallelGCThreads > 1),
  2065                            ParallelRefProcEnabled && (ParallelGCThreads > 1),
  2066                                 // mt processing
  2066                                 // mt processing
  2067                            (uint) ParallelGCThreads,
  2067                            ParallelGCThreads,
  2068                                 // degree of mt processing
  2068                                 // degree of mt processing
  2069                            (ParallelGCThreads > 1) || (ConcGCThreads > 1),
  2069                            (ParallelGCThreads > 1) || (ConcGCThreads > 1),
  2070                                 // mt discovery
  2070                                 // mt discovery
  2071                            (uint) MAX2(ParallelGCThreads, ConcGCThreads),
  2071                            MAX2(ParallelGCThreads, ConcGCThreads),
  2072                                 // degree of mt discovery
  2072                                 // degree of mt discovery
  2073                            false,
  2073                            false,
  2074                                 // Reference discovery is not atomic
  2074                                 // Reference discovery is not atomic
  2075                            &_is_alive_closure_cm);
  2075                            &_is_alive_closure_cm);
  2076                                 // is alive closure
  2076                                 // is alive closure
  2079   // STW ref processor
  2079   // STW ref processor
  2080   _ref_processor_stw =
  2080   _ref_processor_stw =
  2081     new ReferenceProcessor(mr,    // span
  2081     new ReferenceProcessor(mr,    // span
  2082                            ParallelRefProcEnabled && (ParallelGCThreads > 1),
  2082                            ParallelRefProcEnabled && (ParallelGCThreads > 1),
  2083                                 // mt processing
  2083                                 // mt processing
  2084                            (uint) ParallelGCThreads,
  2084                            ParallelGCThreads,
  2085                                 // degree of mt processing
  2085                                 // degree of mt processing
  2086                            (ParallelGCThreads > 1),
  2086                            (ParallelGCThreads > 1),
  2087                                 // mt discovery
  2087                                 // mt discovery
  2088                            (uint) ParallelGCThreads,
  2088                            ParallelGCThreads,
  2089                                 // degree of mt discovery
  2089                                 // degree of mt discovery
  2090                            true,
  2090                            true,
  2091                                 // Reference discovery is atomic
  2091                                 // Reference discovery is atomic
  2092                            &_is_alive_closure_stw);
  2092                            &_is_alive_closure_stw);
  2093                                 // is alive closure
  2093                                 // is alive closure