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

Print this page
rev 6872 : imported patch nm-hashtable


1640   ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1641 
1642   // The dirty cards region list is used to record a subset of regions
1643   // whose cards need clearing. The list if populated during the
1644   // remembered set scanning and drained during the card table
1645   // cleanup. Although the methods are reentrant, population/draining
1646   // phases must not overlap. For synchronization purposes the last
1647   // element on the list points to itself.
1648   HeapRegion* _dirty_cards_region_list;
1649   void push_dirty_cards_region(HeapRegion* hr);
1650   HeapRegion* pop_dirty_cards_region();
1651 
1652   // Optimized nmethod scanning support routines
1653 
1654   // Register the given nmethod with the G1 heap.
1655   virtual void register_nmethod(nmethod* nm);
1656 
1657   // Unregister the given nmethod from the G1 heap.
1658   virtual void unregister_nmethod(nmethod* nm);
1659 
1660   // Migrate the nmethods in the code root lists of the regions
1661   // in the collection set to regions in to-space. In the event
1662   // of an evacuation failure, nmethods that reference objects
1663   // that were not successfully evacuated are not migrated.
1664   void migrate_strong_code_roots();
1665 
1666   // Free up superfluous code root memory.
1667   void purge_code_root_memory();
1668 
1669   // Rebuild the strong code root lists for each region
1670   // after a full GC.
1671   void rebuild_strong_code_roots();
1672 
1673   // Delete entries for dead interned string and clean up unreferenced symbols
1674   // in symbol table, possibly in parallel.
1675   void unlink_string_and_symbol_table(BoolObjectClosure* is_alive, bool unlink_strings = true, bool unlink_symbols = true);
1676 
1677   // Parallel phase of unloading/cleaning after G1 concurrent mark.
1678   void parallel_cleaning(BoolObjectClosure* is_alive, bool process_strings, bool process_symbols, bool class_unloading_occurred);
1679 
1680   // Redirty logged cards in the refinement queue.
1681   void redirty_logged_cards();
1682   // Verification
1683 
1684   // The following is just to alert the verification code
1685   // that a full collection has occurred and that the




1640   ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1641 
1642   // The dirty cards region list is used to record a subset of regions
1643   // whose cards need clearing. The list if populated during the
1644   // remembered set scanning and drained during the card table
1645   // cleanup. Although the methods are reentrant, population/draining
1646   // phases must not overlap. For synchronization purposes the last
1647   // element on the list points to itself.
1648   HeapRegion* _dirty_cards_region_list;
1649   void push_dirty_cards_region(HeapRegion* hr);
1650   HeapRegion* pop_dirty_cards_region();
1651 
1652   // Optimized nmethod scanning support routines
1653 
1654   // Register the given nmethod with the G1 heap.
1655   virtual void register_nmethod(nmethod* nm);
1656 
1657   // Unregister the given nmethod from the G1 heap.
1658   virtual void unregister_nmethod(nmethod* nm);
1659 






1660   // Free up superfluous code root memory.
1661   void purge_code_root_memory();
1662 
1663   // Rebuild the strong code root lists for each region
1664   // after a full GC.
1665   void rebuild_strong_code_roots();
1666 
1667   // Delete entries for dead interned string and clean up unreferenced symbols
1668   // in symbol table, possibly in parallel.
1669   void unlink_string_and_symbol_table(BoolObjectClosure* is_alive, bool unlink_strings = true, bool unlink_symbols = true);
1670 
1671   // Parallel phase of unloading/cleaning after G1 concurrent mark.
1672   void parallel_cleaning(BoolObjectClosure* is_alive, bool process_strings, bool process_symbols, bool class_unloading_occurred);
1673 
1674   // Redirty logged cards in the refinement queue.
1675   void redirty_logged_cards();
1676   // Verification
1677 
1678   // The following is just to alert the verification code
1679   // that a full collection has occurred and that the