hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp
changeset 23452 d7dca4e6b95d
parent 23451 ed2b8bb28fed
child 23456 9a9485a32cb3
equal deleted inserted replaced
23451:ed2b8bb28fed 23452:d7dca4e6b95d
   119   // false.
   119   // false.
   120   bool del_single_region_table(size_t ind, HeapRegion* hr);
   120   bool del_single_region_table(size_t ind, HeapRegion* hr);
   121 
   121 
   122   // Indexed by thread X heap region, to minimize thread contention.
   122   // Indexed by thread X heap region, to minimize thread contention.
   123   static int** _from_card_cache;
   123   static int** _from_card_cache;
   124   static size_t _from_card_cache_max_regions;
   124   static uint _from_card_cache_max_regions;
   125   static size_t _from_card_cache_mem_size;
   125   static size_t _from_card_cache_mem_size;
   126 
   126 
   127   // link/add the given fine grain remembered set into the "all" list
   127   // link/add the given fine grain remembered set into the "all" list
   128   void link_to_all(PerRegionTable * prt);
   128   void link_to_all(PerRegionTable * prt);
   129   // unlink/remove the given fine grain remembered set into the "all" list
   129   // unlink/remove the given fine grain remembered set into the "all" list
   168 
   168 
   169   void do_cleanup_work(HRRSCleanupTask* hrrs_cleanup_task);
   169   void do_cleanup_work(HRRSCleanupTask* hrrs_cleanup_task);
   170 
   170 
   171   // Declare the heap size (in # of regions) to the OtherRegionsTable.
   171   // Declare the heap size (in # of regions) to the OtherRegionsTable.
   172   // (Uses it to initialize from_card_cache).
   172   // (Uses it to initialize from_card_cache).
   173   static void init_from_card_cache(size_t max_regions);
   173   static void init_from_card_cache(uint max_regions);
   174 
   174 
   175   // Declares that only regions i s.t. 0 <= i < new_n_regs are in use.
   175   // Declares that only regions i s.t. 0 <= i < new_n_regs are in use.
   176   // Make sure any entries for higher regions are invalid.
   176   // Make sure any entries for higher regions are invalid.
   177   static void shrink_from_card_cache(size_t new_n_regs);
   177   static void shrink_from_card_cache(uint new_n_regs);
   178 
   178 
   179   static void print_from_card_cache();
   179   static void print_from_card_cache();
   180 };
   180 };
   181 
   181 
   182 class HeapRegionRemSet : public CHeapObj<mtGC> {
   182 class HeapRegionRemSet : public CHeapObj<mtGC> {
   220   static void print_event(outputStream* str, Event evnt);
   220   static void print_event(outputStream* str, Event evnt);
   221 
   221 
   222 public:
   222 public:
   223   HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, HeapRegion* hr);
   223   HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, HeapRegion* hr);
   224 
   224 
   225   static int num_par_rem_sets();
   225   static uint num_par_rem_sets();
   226   static void setup_remset_size();
   226   static void setup_remset_size();
   227 
   227 
   228   HeapRegion* hr() const {
   228   HeapRegion* hr() const {
   229     return _other_regions.hr();
   229     return _other_regions.hr();
   230   }
   230   }
   356 
   356 
   357   // Declare the heap size (in # of regions) to the HeapRegionRemSet(s).
   357   // Declare the heap size (in # of regions) to the HeapRegionRemSet(s).
   358   // (Uses it to initialize from_card_cache).
   358   // (Uses it to initialize from_card_cache).
   359   static void init_heap(uint max_regions) {
   359   static void init_heap(uint max_regions) {
   360     G1CodeRootSet::initialize();
   360     G1CodeRootSet::initialize();
   361     OtherRegionsTable::init_from_card_cache((size_t) max_regions);
   361     OtherRegionsTable::init_from_card_cache(max_regions);
   362   }
   362   }
   363 
   363 
   364   // Declares that only regions i s.t. 0 <= i < new_n_regs are in use.
   364   // Declares that only regions i s.t. 0 <= i < new_n_regs are in use.
   365   static void shrink_heap(uint new_n_regs) {
   365   static void shrink_heap(uint new_n_regs) {
   366     OtherRegionsTable::shrink_from_card_cache((size_t) new_n_regs);
   366     OtherRegionsTable::shrink_from_card_cache(new_n_regs);
   367   }
   367   }
   368 
   368 
   369 #ifndef PRODUCT
   369 #ifndef PRODUCT
   370   static void print_from_card_cache() {
   370   static void print_from_card_cache() {
   371     OtherRegionsTable::print_from_card_cache();
   371     OtherRegionsTable::print_from_card_cache();