< prev index next >

src/hotspot/share/gc/cms/parNewGeneration.cpp

Print this page
rev 49905 : imported patch 8201492-properly-implement-non-contiguous-reference-processing
rev 49908 : imported patch 8202021-cleanup-referenceprocessor
rev 49910 : imported patch 8202017-reference-processor-remove-enqueue


1039   from()->set_concurrent_iteration_safe_limit(from()->top());
1040   to()->set_concurrent_iteration_safe_limit(to()->top());
1041 
1042   plab_stats()->adjust_desired_plab_sz();
1043 
1044   TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats());
1045   TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats());
1046 
1047   if (UseAdaptiveSizePolicy) {
1048     size_policy->minor_collection_end(gch->gc_cause());
1049     size_policy->avg_survived()->sample(from()->used());
1050   }
1051 
1052   // We need to use a monotonically non-decreasing time in ms
1053   // or we will see time-warp warnings and os::javaTimeMillis()
1054   // does not guarantee monotonicity.
1055   jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
1056   update_time_of_last_gc(now);
1057 
1058   rp->set_enqueuing_is_done(true);
1059   if (rp->processing_is_mt()) {
1060     ParNewRefProcTaskExecutor task_executor(*this, *_old_gen, thread_state_set);
1061     rp->enqueue_discovered_references(&task_executor, &pt);
1062   } else {
1063     rp->enqueue_discovered_references(NULL, &pt);
1064   }
1065   rp->verify_no_references_recorded();
1066 
1067   gch->trace_heap_after_gc(gc_tracer());
1068 
1069   pt.print_enqueue_phase();
1070 
1071   _gc_timer->register_gc_end();
1072 
1073   _gc_tracer.report_gc_end(_gc_timer->gc_end(), _gc_timer->time_partitions());
1074 }
1075 
1076 size_t ParNewGeneration::desired_plab_sz() {
1077   return _plab_stats.desired_plab_sz(CMSHeap::heap()->workers()->active_workers());
1078 }
1079 
1080 static int sum;
1081 void ParNewGeneration::waste_some_time() {
1082   for (int i = 0; i < 100; i++) {
1083     sum += i;
1084   }
1085 }
1086 
1087 static const oop ClaimedForwardPtr = cast_to_oop<intptr_t>(0x4);
1088 
1089 // Because of concurrency, there are times where an object for which




1039   from()->set_concurrent_iteration_safe_limit(from()->top());
1040   to()->set_concurrent_iteration_safe_limit(to()->top());
1041 
1042   plab_stats()->adjust_desired_plab_sz();
1043 
1044   TASKQUEUE_STATS_ONLY(thread_state_set.print_termination_stats());
1045   TASKQUEUE_STATS_ONLY(thread_state_set.print_taskqueue_stats());
1046 
1047   if (UseAdaptiveSizePolicy) {
1048     size_policy->minor_collection_end(gch->gc_cause());
1049     size_policy->avg_survived()->sample(from()->used());
1050   }
1051 
1052   // We need to use a monotonically non-decreasing time in ms
1053   // or we will see time-warp warnings and os::javaTimeMillis()
1054   // does not guarantee monotonicity.
1055   jlong now = os::javaTimeNanos() / NANOSECS_PER_MILLISEC;
1056   update_time_of_last_gc(now);
1057 
1058   rp->set_enqueuing_is_done(true);






1059   rp->verify_no_references_recorded();
1060 
1061   gch->trace_heap_after_gc(gc_tracer());


1062 
1063   _gc_timer->register_gc_end();
1064 
1065   _gc_tracer.report_gc_end(_gc_timer->gc_end(), _gc_timer->time_partitions());
1066 }
1067 
1068 size_t ParNewGeneration::desired_plab_sz() {
1069   return _plab_stats.desired_plab_sz(CMSHeap::heap()->workers()->active_workers());
1070 }
1071 
1072 static int sum;
1073 void ParNewGeneration::waste_some_time() {
1074   for (int i = 0; i < 100; i++) {
1075     sum += i;
1076   }
1077 }
1078 
1079 static const oop ClaimedForwardPtr = cast_to_oop<intptr_t>(0x4);
1080 
1081 // Because of concurrency, there are times where an object for which


< prev index next >