< prev index next >

src/share/vm/gc/g1/g1CollectorPolicy.cpp

Print this page




 741   HeapRegion* head = _g1->young_list()->first_region();
 742   return
 743     verify_young_ages(head, _short_lived_surv_rate_group);
 744   // also call verify_young_ages on any additional surv rate groups
 745 }
 746 
 747 bool
 748 G1CollectorPolicy::verify_young_ages(HeapRegion* head,
 749                                      SurvRateGroup *surv_rate_group) {
 750   guarantee( surv_rate_group != NULL, "pre-condition" );
 751 
 752   const char* name = surv_rate_group->name();
 753   bool ret = true;
 754   int prev_age = -1;
 755 
 756   for (HeapRegion* curr = head;
 757        curr != NULL;
 758        curr = curr->get_next_young_region()) {
 759     SurvRateGroup* group = curr->surv_rate_group();
 760     if (group == NULL && !curr->is_survivor()) {
 761       log_info(gc, verify)("## %s: encountered NULL surv_rate_group", name);
 762       ret = false;
 763     }
 764 
 765     if (surv_rate_group == group) {
 766       int age = curr->age_in_surv_rate_group();
 767 
 768       if (age < 0) {
 769         log_info(gc, verify)("## %s: encountered negative age", name);
 770         ret = false;
 771       }
 772 
 773       if (age <= prev_age) {
 774         log_info(gc, verify)("## %s: region ages are not strictly increasing (%d, %d)", name, age, prev_age);
 775         ret = false;
 776       }
 777       prev_age = age;
 778     }
 779   }
 780 
 781   return ret;
 782 }
 783 #endif // PRODUCT
 784 
 785 void G1CollectorPolicy::record_full_collection_start() {
 786   _full_collection_start_sec = os::elapsedTime();
 787   // Release the future to-space so that it is available for compaction into.
 788   collector_state()->set_full_collection(true);
 789 }
 790 
 791 void G1CollectorPolicy::record_full_collection_end() {
 792   // Consider this like a collection pause for the purposes of allocation
 793   // since last pause.
 794   double end_sec = os::elapsedTime();




 741   HeapRegion* head = _g1->young_list()->first_region();
 742   return
 743     verify_young_ages(head, _short_lived_surv_rate_group);
 744   // also call verify_young_ages on any additional surv rate groups
 745 }
 746 
 747 bool
 748 G1CollectorPolicy::verify_young_ages(HeapRegion* head,
 749                                      SurvRateGroup *surv_rate_group) {
 750   guarantee( surv_rate_group != NULL, "pre-condition" );
 751 
 752   const char* name = surv_rate_group->name();
 753   bool ret = true;
 754   int prev_age = -1;
 755 
 756   for (HeapRegion* curr = head;
 757        curr != NULL;
 758        curr = curr->get_next_young_region()) {
 759     SurvRateGroup* group = curr->surv_rate_group();
 760     if (group == NULL && !curr->is_survivor()) {
 761       log_error(gc, verify)("## %s: encountered NULL surv_rate_group", name);
 762       ret = false;
 763     }
 764 
 765     if (surv_rate_group == group) {
 766       int age = curr->age_in_surv_rate_group();
 767 
 768       if (age < 0) {
 769         log_error(gc, verify)("## %s: encountered negative age", name);
 770         ret = false;
 771       }
 772 
 773       if (age <= prev_age) {
 774         log_error(gc, verify)("## %s: region ages are not strictly increasing (%d, %d)", name, age, prev_age);
 775         ret = false;
 776       }
 777       prev_age = age;
 778     }
 779   }
 780 
 781   return ret;
 782 }
 783 #endif // PRODUCT
 784 
 785 void G1CollectorPolicy::record_full_collection_start() {
 786   _full_collection_start_sec = os::elapsedTime();
 787   // Release the future to-space so that it is available for compaction into.
 788   collector_state()->set_full_collection(true);
 789 }
 790 
 791 void G1CollectorPolicy::record_full_collection_end() {
 792   // Consider this like a collection pause for the purposes of allocation
 793   // since last pause.
 794   double end_sec = os::elapsedTime();


< prev index next >