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
|