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

Print this page
rev 4801 : imported patch code-movement
rev 4802 : imported patch optimize-nmethod-scanning
rev 4803 : imported patch thomas-comments


1622 
1623   // The dirty cards region list is used to record a subset of regions
1624   // whose cards need clearing. The list if populated during the
1625   // remembered set scanning and drained during the card table
1626   // cleanup. Although the methods are reentrant, population/draining
1627   // phases must not overlap. For synchronization purposes the last
1628   // element on the list points to itself.
1629   HeapRegion* _dirty_cards_region_list;
1630   void push_dirty_cards_region(HeapRegion* hr);
1631   HeapRegion* pop_dirty_cards_region();
1632 
1633   // Optimized nmethod scanning support routines
1634 
1635   // Register the given nmethod with the G1 heap
1636   virtual void register_nmethod(nmethod* nm);
1637 
1638   // Unregister the given nmethod from the G1 heap
1639   virtual void unregister_nmethod(nmethod* nm);
1640 
1641   // Migrate the nmethods in the code root lists of the regions
1642   // in the collection set to regions in to-space


1643   void migrate_strong_code_roots();
1644 
1645   // During an initial mark pause, mark the strong code roots that
1646   // point into the heap.
1647   void mark_strong_code_roots(uint worker_id);
1648 
1649   // Rebuild the stong code root lists for each region
1650   // after a full GC
1651   void rebuild_strong_code_roots();
1652 
1653   // Verification
1654 
1655   // The following is just to alert the verification code
1656   // that a full collection has occurred and that the
1657   // remembered sets are no longer up to date.
1658   bool _full_collection;
1659   void set_full_collection() { _full_collection = true;}
1660   void clear_full_collection() {_full_collection = false;}
1661   bool full_collection() {return _full_collection;}
1662 
1663   // Perform any cleanup actions necessary before allowing a verification.
1664   virtual void prepare_for_verify();
1665 
1666   // Perform verification.




1622 
1623   // The dirty cards region list is used to record a subset of regions
1624   // whose cards need clearing. The list if populated during the
1625   // remembered set scanning and drained during the card table
1626   // cleanup. Although the methods are reentrant, population/draining
1627   // phases must not overlap. For synchronization purposes the last
1628   // element on the list points to itself.
1629   HeapRegion* _dirty_cards_region_list;
1630   void push_dirty_cards_region(HeapRegion* hr);
1631   HeapRegion* pop_dirty_cards_region();
1632 
1633   // Optimized nmethod scanning support routines
1634 
1635   // Register the given nmethod with the G1 heap
1636   virtual void register_nmethod(nmethod* nm);
1637 
1638   // Unregister the given nmethod from the G1 heap
1639   virtual void unregister_nmethod(nmethod* nm);
1640 
1641   // Migrate the nmethods in the code root lists of the regions
1642   // in the collection set to regions in to-space. In the event
1643   // of an evacuation failure, nmethods that reference objects
1644   // that were not successfullly evacuated are not migrated.
1645   void migrate_strong_code_roots();
1646 
1647   // During an initial mark pause, mark all the code roots that
1648   // point into regions *not* in the collection set.
1649   void mark_strong_code_roots(uint worker_id);
1650 
1651   // Rebuild the stong code root lists for each region
1652   // after a full GC
1653   void rebuild_strong_code_roots();
1654 
1655   // Verification
1656 
1657   // The following is just to alert the verification code
1658   // that a full collection has occurred and that the
1659   // remembered sets are no longer up to date.
1660   bool _full_collection;
1661   void set_full_collection() { _full_collection = true;}
1662   void clear_full_collection() {_full_collection = false;}
1663   bool full_collection() {return _full_collection;}
1664 
1665   // Perform any cleanup actions necessary before allowing a verification.
1666   virtual void prepare_for_verify();
1667 
1668   // Perform verification.