comparison src/share/vm/gc_implementation/g1/heapRegion.cpp @ 17753:191174b49bec

8035406: Improve data structure for Code Cache remembered sets Summary: Change the code cache remembered sets data structure from a GrowableArray to a chunked list of nmethods. This makes the data structure more amenable to parallelization, and decreases freeing time. Reviewed-by: mgerdin, brutisso
author tschatzl
date Mon, 24 Mar 2014 15:30:14 +0100
parents 28674af341ac
children 96b1c2e06e25
comparison
equal deleted inserted replaced
17750:f53edbc2b728 17753:191174b49bec
708 assert(VerifyDuringGC, "only way to get here"); 708 assert(VerifyDuringGC, "only way to get here");
709 return; 709 return;
710 } 710 }
711 711
712 HeapRegionRemSet* hrrs = rem_set(); 712 HeapRegionRemSet* hrrs = rem_set();
713 int strong_code_roots_length = hrrs->strong_code_roots_list_length(); 713 size_t strong_code_roots_length = hrrs->strong_code_roots_list_length();
714 714
715 // if this region is empty then there should be no entries 715 // if this region is empty then there should be no entries
716 // on its strong code root list 716 // on its strong code root list
717 if (is_empty()) { 717 if (is_empty()) {
718 if (strong_code_roots_length > 0) { 718 if (strong_code_roots_length > 0) {
719 gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] is empty " 719 gclog_or_tty->print_cr("region ["PTR_FORMAT","PTR_FORMAT"] is empty "
720 "but has "INT32_FORMAT" code root entries", 720 "but has "SIZE_FORMAT" code root entries",
721 bottom(), end(), strong_code_roots_length); 721 bottom(), end(), strong_code_roots_length);
722 *failures = true; 722 *failures = true;
723 } 723 }
724 return; 724 return;
725 } 725 }
726 726
727 if (continuesHumongous()) { 727 if (continuesHumongous()) {
728 if (strong_code_roots_length > 0) { 728 if (strong_code_roots_length > 0) {
729 gclog_or_tty->print_cr("region "HR_FORMAT" is a continuation of a humongous " 729 gclog_or_tty->print_cr("region "HR_FORMAT" is a continuation of a humongous "
730 "region but has "INT32_FORMAT" code root entries", 730 "region but has "SIZE_FORMAT" code root entries",
731 HR_FORMAT_PARAMS(this), strong_code_roots_length); 731 HR_FORMAT_PARAMS(this), strong_code_roots_length);
732 *failures = true; 732 *failures = true;
733 } 733 }
734 return; 734 return;
735 } 735 }