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

Print this page
rev 2591 : 6814390: G1: remove the concept of non-generational G1
Summary: Removed the possibility to turn off generational mode for G1.
Reviewed-by: johnc, ysr, tonyp


 739   // G1PrintReachableBaseFile + "." + str.
 740   // vo decides whether the prev (vo == UsePrevMarking), the next
 741   // (vo == UseNextMarking) marking information, or the mark word
 742   // (vo == UseMarkWord) will be used to determine the liveness of
 743   // each object / referent.
 744   // If all is true, all objects in the heap will be dumped, otherwise
 745   // only the live ones. In the dump the following symbols / breviations
 746   // are used:
 747   //   M : an explicitly live object (its bitmap bit is set)
 748   //   > : an implicitly live object (over tams)
 749   //   O : an object outside the G1 heap (typically: in the perm gen)
 750   //   NOT : a reference field whose referent is not live
 751   //   AND MARKED : indicates that an object is both explicitly and
 752   //   implicitly live (it should be one or the other, not both)
 753   void print_reachable(const char* str,
 754                        VerifyOption vo, bool all) PRODUCT_RETURN;
 755 
 756   // Clear the next marking bitmap (will be called concurrently).
 757   void clearNextBitmap();
 758 
 759   // main CMS steps and related support
 760   void checkpointRootsInitial();
 761 
 762   // These two do the work that needs to be done before and after the
 763   // initial root checkpoint. Since this checkpoint can be done at two
 764   // different points (i.e. an explicit pause or piggy-backed on a
 765   // young collection), then it's nice to be able to easily share the
 766   // pre/post code. It might be the case that we can put everything in
 767   // the post method. TP
 768   void checkpointRootsInitialPre();
 769   void checkpointRootsInitialPost();
 770 
 771   // Do concurrent phase of marking, to a tentative transitive closure.
 772   void markFromRoots();
 773 
 774   // Process all unprocessed SATB buffers. It is called at the
 775   // beginning of an evacuation pause.
 776   void drainAllSATBBuffers();
 777 
 778   void checkpointRootsFinal(bool clear_all_soft_refs);
 779   void checkpointRootsFinalWork();
 780   void calcDesiredRegions();
 781   void cleanup();




 739   // G1PrintReachableBaseFile + "." + str.
 740   // vo decides whether the prev (vo == UsePrevMarking), the next
 741   // (vo == UseNextMarking) marking information, or the mark word
 742   // (vo == UseMarkWord) will be used to determine the liveness of
 743   // each object / referent.
 744   // If all is true, all objects in the heap will be dumped, otherwise
 745   // only the live ones. In the dump the following symbols / breviations
 746   // are used:
 747   //   M : an explicitly live object (its bitmap bit is set)
 748   //   > : an implicitly live object (over tams)
 749   //   O : an object outside the G1 heap (typically: in the perm gen)
 750   //   NOT : a reference field whose referent is not live
 751   //   AND MARKED : indicates that an object is both explicitly and
 752   //   implicitly live (it should be one or the other, not both)
 753   void print_reachable(const char* str,
 754                        VerifyOption vo, bool all) PRODUCT_RETURN;
 755 
 756   // Clear the next marking bitmap (will be called concurrently).
 757   void clearNextBitmap();
 758 



 759   // These two do the work that needs to be done before and after the
 760   // initial root checkpoint. Since this checkpoint can be done at two
 761   // different points (i.e. an explicit pause or piggy-backed on a
 762   // young collection), then it's nice to be able to easily share the
 763   // pre/post code. It might be the case that we can put everything in
 764   // the post method. TP
 765   void checkpointRootsInitialPre();
 766   void checkpointRootsInitialPost();
 767 
 768   // Do concurrent phase of marking, to a tentative transitive closure.
 769   void markFromRoots();
 770 
 771   // Process all unprocessed SATB buffers. It is called at the
 772   // beginning of an evacuation pause.
 773   void drainAllSATBBuffers();
 774 
 775   void checkpointRootsFinal(bool clear_all_soft_refs);
 776   void checkpointRootsFinalWork();
 777   void calcDesiredRegions();
 778   void cleanup();