802 _consecutive_skipped_scavenges++;
803 if (UsePerfData) {
804 counters->update_scavenge_skipped(promoted_too_large);
805 }
806 }
807 return result;
808 }
809
810 // Used to add tasks
811 GCTaskManager* const PSScavenge::gc_task_manager() {
812 assert(ParallelScavengeHeap::gc_task_manager() != NULL,
813 "shouldn't return NULL");
814 return ParallelScavengeHeap::gc_task_manager();
815 }
816
817 void PSScavenge::initialize() {
818 // Arguments must have been parsed
819
820 if (AlwaysTenure || NeverTenure) {
821 assert(MaxTenuringThreshold == 0 || MaxTenuringThreshold == markOopDesc::max_age + 1,
822 err_msg("MaxTenuringThreshold should be 0 or markOopDesc::max_age + 1, but is %d", (int) MaxTenuringThreshold));
823 _tenuring_threshold = MaxTenuringThreshold;
824 } else {
825 // We want to smooth out our startup times for the AdaptiveSizePolicy
826 _tenuring_threshold = (UseAdaptiveSizePolicy) ? InitialTenuringThreshold :
827 MaxTenuringThreshold;
828 }
829
830 ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
831 PSYoungGen* young_gen = heap->young_gen();
832 PSOldGen* old_gen = heap->old_gen();
833
834 // Set boundary between young_gen and old_gen
835 assert(old_gen->reserved().end() <= young_gen->eden_space()->bottom(),
836 "old above young");
837 set_young_generation_boundary(young_gen->eden_space()->bottom());
838
839 // Initialize ref handling object for scavenging.
840 MemRegion mr = young_gen->reserved();
841
842 _ref_processor =
|
802 _consecutive_skipped_scavenges++;
803 if (UsePerfData) {
804 counters->update_scavenge_skipped(promoted_too_large);
805 }
806 }
807 return result;
808 }
809
810 // Used to add tasks
811 GCTaskManager* const PSScavenge::gc_task_manager() {
812 assert(ParallelScavengeHeap::gc_task_manager() != NULL,
813 "shouldn't return NULL");
814 return ParallelScavengeHeap::gc_task_manager();
815 }
816
817 void PSScavenge::initialize() {
818 // Arguments must have been parsed
819
820 if (AlwaysTenure || NeverTenure) {
821 assert(MaxTenuringThreshold == 0 || MaxTenuringThreshold == markOopDesc::max_age + 1,
822 "MaxTenuringThreshold should be 0 or markOopDesc::max_age + 1, but is %d", (int) MaxTenuringThreshold);
823 _tenuring_threshold = MaxTenuringThreshold;
824 } else {
825 // We want to smooth out our startup times for the AdaptiveSizePolicy
826 _tenuring_threshold = (UseAdaptiveSizePolicy) ? InitialTenuringThreshold :
827 MaxTenuringThreshold;
828 }
829
830 ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
831 PSYoungGen* young_gen = heap->young_gen();
832 PSOldGen* old_gen = heap->old_gen();
833
834 // Set boundary between young_gen and old_gen
835 assert(old_gen->reserved().end() <= young_gen->eden_space()->bottom(),
836 "old above young");
837 set_young_generation_boundary(young_gen->eden_space()->bottom());
838
839 // Initialize ref handling object for scavenging.
840 MemRegion mr = young_gen->reserved();
841
842 _ref_processor =
|