Mercurial > hg > truffle
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 } |