src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp

Print this page
rev 6322 : 8038930: G1CodeRootSet::test fails with assert(_num_chunks_handed_out == 0) failed: No elements must have been handed out yet
Summary: The test incorrectly assumed that it had been started with no other previous compilation activity. Fix this by allowing multiple code root free chunk lists, and use one separate from the global one to perform the test.
Reviewed-by: brutisso
rev 6324 : 8037344: Use the "next" field to iterate over fine remembered instead of using the hash table
Summary: After changes to the PerRegionTable where all these PRTs are linked together in an additional field, simplify iterating over all PRTs by using these links instead of walki
Reviewed-by: mgerdin, jwilhelm, brutisso
rev 6325 : 8039596: Remove HeapRegionRemSet::clear_incoming_entry
Summary: The mentioned method is never used and out of date. So it is removed.
Reviewed-by: mgerdin, brutisso


 189   size_t occ_fine() const;
 190   size_t occ_coarse() const;
 191   size_t occ_sparse() const;
 192 
 193   static jint n_coarsenings() { return _n_coarsenings; }
 194 
 195   // Returns size in bytes.
 196   // Not const because it takes a lock.
 197   size_t mem_size() const;
 198   static size_t static_mem_size();
 199   static size_t fl_mem_size();
 200 
 201   bool contains_reference(OopOrNarrowOopStar from) const;
 202   bool contains_reference_locked(OopOrNarrowOopStar from) const;
 203 
 204   void clear();
 205 
 206   // Specifically clear the from_card_cache.
 207   void clear_fcc();
 208 
 209   // "from_hr" is being cleared; remove any entries from it.
 210   void clear_incoming_entry(HeapRegion* from_hr);
 211 
 212   void do_cleanup_work(HRRSCleanupTask* hrrs_cleanup_task);
 213 
 214   // Declare the heap size (in # of regions) to the OtherRegionsTable.
 215   // (Uses it to initialize from_card_cache).
 216   static void init_from_card_cache(uint max_regions);
 217 
 218   // Declares that only regions i s.t. 0 <= i < new_n_regs are in use.
 219   // Make sure any entries for higher regions are invalid.
 220   static void shrink_from_card_cache(uint new_num_regions);
 221 
 222   static void print_from_card_cache();
 223 };
 224 
 225 class HeapRegionRemSet : public CHeapObj<mtGC> {
 226   friend class VMStructs;
 227   friend class HeapRegionRemSetIterator;
 228 
 229 public:
 230   enum Event {
 231     Event_EvacStart, Event_EvacEnd, Event_RSUpdateEnd




 189   size_t occ_fine() const;
 190   size_t occ_coarse() const;
 191   size_t occ_sparse() const;
 192 
 193   static jint n_coarsenings() { return _n_coarsenings; }
 194 
 195   // Returns size in bytes.
 196   // Not const because it takes a lock.
 197   size_t mem_size() const;
 198   static size_t static_mem_size();
 199   static size_t fl_mem_size();
 200 
 201   bool contains_reference(OopOrNarrowOopStar from) const;
 202   bool contains_reference_locked(OopOrNarrowOopStar from) const;
 203 
 204   void clear();
 205 
 206   // Specifically clear the from_card_cache.
 207   void clear_fcc();
 208 



 209   void do_cleanup_work(HRRSCleanupTask* hrrs_cleanup_task);
 210 
 211   // Declare the heap size (in # of regions) to the OtherRegionsTable.
 212   // (Uses it to initialize from_card_cache).
 213   static void init_from_card_cache(uint max_regions);
 214 
 215   // Declares that only regions i s.t. 0 <= i < new_n_regs are in use.
 216   // Make sure any entries for higher regions are invalid.
 217   static void shrink_from_card_cache(uint new_num_regions);
 218 
 219   static void print_from_card_cache();
 220 };
 221 
 222 class HeapRegionRemSet : public CHeapObj<mtGC> {
 223   friend class VMStructs;
 224   friend class HeapRegionRemSetIterator;
 225 
 226 public:
 227   enum Event {
 228     Event_EvacStart, Event_EvacEnd, Event_RSUpdateEnd