847 assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
848
849 PSYoungGen* young_gen = heap->young_gen();
850 PSOldGen* old_gen = heap->old_gen();
851
852 // Set boundary between young_gen and old_gen
853 assert(old_gen->reserved().end() <= young_gen->eden_space()->bottom(),
854 "old above young");
855 set_young_generation_boundary(young_gen->eden_space()->bottom());
856
857 // Initialize ref handling object for scavenging.
858 MemRegion mr = young_gen->reserved();
859
860 _ref_processor =
861 new ReferenceProcessor(mr, // span
862 ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing
863 (int) ParallelGCThreads, // mt processing degree
864 true, // mt discovery
865 (int) ParallelGCThreads, // mt discovery degree
866 true, // atomic_discovery
867 NULL, // header provides liveness info
868 false); // next field updates do not need write barrier
869
870 // Cache the cardtable
871 BarrierSet* bs = Universe::heap()->barrier_set();
872 assert(bs->kind() == BarrierSet::CardTableModRef, "Wrong barrier set kind");
873 _card_table = (CardTableExtension*)bs;
874
875 _counters = new CollectorCounters("PSScavenge", 0);
876 }
|
847 assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
848
849 PSYoungGen* young_gen = heap->young_gen();
850 PSOldGen* old_gen = heap->old_gen();
851
852 // Set boundary between young_gen and old_gen
853 assert(old_gen->reserved().end() <= young_gen->eden_space()->bottom(),
854 "old above young");
855 set_young_generation_boundary(young_gen->eden_space()->bottom());
856
857 // Initialize ref handling object for scavenging.
858 MemRegion mr = young_gen->reserved();
859
860 _ref_processor =
861 new ReferenceProcessor(mr, // span
862 ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing
863 (int) ParallelGCThreads, // mt processing degree
864 true, // mt discovery
865 (int) ParallelGCThreads, // mt discovery degree
866 true, // atomic_discovery
867 NULL); // header provides liveness info
868
869 // Cache the cardtable
870 BarrierSet* bs = Universe::heap()->barrier_set();
871 assert(bs->kind() == BarrierSet::CardTableModRef, "Wrong barrier set kind");
872 _card_table = (CardTableExtension*)bs;
873
874 _counters = new CollectorCounters("PSScavenge", 0);
875 }
|