< prev index next >

src/share/vm/gc/serial/defNewGeneration.cpp

Print this page
rev 13265 : [mq]: 8179387.patch


 726   jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
 727   update_time_of_last_gc(now);
 728 
 729   gch->trace_heap_after_gc(&gc_tracer);
 730 
 731   _gc_timer->register_gc_end();
 732 
 733   gc_tracer.report_gc_end(_gc_timer->gc_end(), _gc_timer->time_partitions());
 734 }
 735 
 736 void DefNewGeneration::init_assuming_no_promotion_failure() {
 737   _promotion_failed = false;
 738   _promotion_failed_info.reset();
 739   from()->set_next_compaction_space(NULL);
 740 }
 741 
 742 void DefNewGeneration::remove_forwarding_pointers() {
 743   RemoveForwardedPointerClosure rspc;
 744   eden()->object_iterate(&rspc);
 745   from()->object_iterate(&rspc);


 746 
 747   SharedRestorePreservedMarksTaskExecutor task_executor(GenCollectedHeap::heap()->workers());

 748   _preserved_marks_set.restore(&task_executor);
 749 }
 750 
 751 void DefNewGeneration::handle_promotion_failure(oop old) {
 752   log_debug(gc, promotion)("Promotion failure size = %d) ", old->size());
 753 
 754   _promotion_failed = true;
 755   _promotion_failed_info.register_copy_failure(old->size());
 756   _preserved_marks_set.get()->push_if_necessary(old, old->mark());
 757   // forward to self
 758   old->forward_to(old);
 759 
 760   _promo_failure_scan_stack.push(old);
 761 
 762   if (!_promo_failure_drain_in_progress) {
 763     // prevent recursion in copy_to_survivor_space()
 764     _promo_failure_drain_in_progress = true;
 765     drain_promo_failure_scan_stack();
 766     _promo_failure_drain_in_progress = false;
 767   }




 726   jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
 727   update_time_of_last_gc(now);
 728 
 729   gch->trace_heap_after_gc(&gc_tracer);
 730 
 731   _gc_timer->register_gc_end();
 732 
 733   gc_tracer.report_gc_end(_gc_timer->gc_end(), _gc_timer->time_partitions());
 734 }
 735 
 736 void DefNewGeneration::init_assuming_no_promotion_failure() {
 737   _promotion_failed = false;
 738   _promotion_failed_info.reset();
 739   from()->set_next_compaction_space(NULL);
 740 }
 741 
 742 void DefNewGeneration::remove_forwarding_pointers() {
 743   RemoveForwardedPointerClosure rspc;
 744   eden()->object_iterate(&rspc);
 745   from()->object_iterate(&rspc);
 746   restore_preserved_marks();
 747 }
 748 
 749 void DefNewGeneration::restore_preserved_marks() {
 750   SharedRestorePreservedMarksTaskExecutor task_executor(NULL);
 751   _preserved_marks_set.restore(&task_executor);
 752 }
 753 
 754 void DefNewGeneration::handle_promotion_failure(oop old) {
 755   log_debug(gc, promotion)("Promotion failure size = %d) ", old->size());
 756 
 757   _promotion_failed = true;
 758   _promotion_failed_info.register_copy_failure(old->size());
 759   _preserved_marks_set.get()->push_if_necessary(old, old->mark());
 760   // forward to self
 761   old->forward_to(old);
 762 
 763   _promo_failure_scan_stack.push(old);
 764 
 765   if (!_promo_failure_drain_in_progress) {
 766     // prevent recursion in copy_to_survivor_space()
 767     _promo_failure_drain_in_progress = true;
 768     drain_promo_failure_scan_stack();
 769     _promo_failure_drain_in_progress = false;
 770   }


< prev index next >