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

Print this page
rev 6672 : imported patch bengt-fixes2


 719   // G1PrintReachableBaseFile + "." + str.
 720   // vo decides whether the prev (vo == UsePrevMarking), the next
 721   // (vo == UseNextMarking) marking information, or the mark word
 722   // (vo == UseMarkWord) will be used to determine the liveness of
 723   // each object / referent.
 724   // If all is true, all objects in the heap will be dumped, otherwise
 725   // only the live ones. In the dump the following symbols / breviations
 726   // are used:
 727   //   M : an explicitly live object (its bitmap bit is set)
 728   //   > : an implicitly live object (over tams)
 729   //   O : an object outside the G1 heap (typically: in the perm gen)
 730   //   NOT : a reference field whose referent is not live
 731   //   AND MARKED : indicates that an object is both explicitly and
 732   //   implicitly live (it should be one or the other, not both)
 733   void print_reachable(const char* str,
 734                        VerifyOption vo, bool all) PRODUCT_RETURN;
 735 
 736   // Clear the next marking bitmap (will be called concurrently).
 737   void clearNextBitmap();
 738 



 739   // These two do the work that needs to be done before and after the
 740   // initial root checkpoint. Since this checkpoint can be done at two
 741   // different points (i.e. an explicit pause or piggy-backed on a
 742   // young collection), then it's nice to be able to easily share the
 743   // pre/post code. It might be the case that we can put everything in
 744   // the post method. TP
 745   void checkpointRootsInitialPre();
 746   void checkpointRootsInitialPost();
 747 
 748   // Scan all the root regions and mark everything reachable from
 749   // them.
 750   void scanRootRegions();
 751 
 752   // Scan a single root region and mark everything reachable from it.
 753   void scanRootRegion(HeapRegion* hr, uint worker_id);
 754 
 755   // Do concurrent phase of marking, to a tentative transitive closure.
 756   void markFromRoots();
 757 
 758   void checkpointRootsFinal(bool clear_all_soft_refs);




 719   // G1PrintReachableBaseFile + "." + str.
 720   // vo decides whether the prev (vo == UsePrevMarking), the next
 721   // (vo == UseNextMarking) marking information, or the mark word
 722   // (vo == UseMarkWord) will be used to determine the liveness of
 723   // each object / referent.
 724   // If all is true, all objects in the heap will be dumped, otherwise
 725   // only the live ones. In the dump the following symbols / breviations
 726   // are used:
 727   //   M : an explicitly live object (its bitmap bit is set)
 728   //   > : an implicitly live object (over tams)
 729   //   O : an object outside the G1 heap (typically: in the perm gen)
 730   //   NOT : a reference field whose referent is not live
 731   //   AND MARKED : indicates that an object is both explicitly and
 732   //   implicitly live (it should be one or the other, not both)
 733   void print_reachable(const char* str,
 734                        VerifyOption vo, bool all) PRODUCT_RETURN;
 735 
 736   // Clear the next marking bitmap (will be called concurrently).
 737   void clearNextBitmap();
 738 
 739   // Return whether the next mark bitmap has no marks set.
 740   bool nextMarkBitmapIsClear();
 741 
 742   // These two do the work that needs to be done before and after the
 743   // initial root checkpoint. Since this checkpoint can be done at two
 744   // different points (i.e. an explicit pause or piggy-backed on a
 745   // young collection), then it's nice to be able to easily share the
 746   // pre/post code. It might be the case that we can put everything in
 747   // the post method. TP
 748   void checkpointRootsInitialPre();
 749   void checkpointRootsInitialPost();
 750 
 751   // Scan all the root regions and mark everything reachable from
 752   // them.
 753   void scanRootRegions();
 754 
 755   // Scan a single root region and mark everything reachable from it.
 756   void scanRootRegion(HeapRegion* hr, uint worker_id);
 757 
 758   // Do concurrent phase of marking, to a tentative transitive closure.
 759   void markFromRoots();
 760 
 761   void checkpointRootsFinal(bool clear_all_soft_refs);