hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp
changeset 5344 f78ef2531f44
parent 5242 85cf92183e39
child 5350 cccf0925702e
equal deleted inserted replaced
5343:95a5c4b89273 5344:f78ef2531f44
   650   // still doing concurrent marking, the objects is pushed on the
   650   // still doing concurrent marking, the objects is pushed on the
   651   // global stack, if it is located below the global finger, otherwise
   651   // global stack, if it is located below the global finger, otherwise
   652   // we do nothing.
   652   // we do nothing.
   653   void markAndGrayObjectIfNecessary(oop p);
   653   void markAndGrayObjectIfNecessary(oop p);
   654 
   654 
   655   // This iterates over the marking bitmap (either prev or next) and
   655   // It iterates over the heap and for each object it comes across it
   656   // prints out all objects that are marked on the bitmap and indicates
   656   // will dump the contents of its reference fields, as well as
   657   // whether what they point to is also marked or not. It also iterates
   657   // liveness information for the object and its referents. The dump
   658   // the objects over TAMS (either prev or next).
   658   // will be written to a file with the following name:
   659   void print_reachable(bool use_prev_marking, const char* str);
   659   // G1PrintReachableBaseFile + "." + str. use_prev_marking decides
       
   660   // whether the prev (use_prev_marking == true) or next
       
   661   // (use_prev_marking == false) marking information will be used to
       
   662   // determine the liveness of each object / referent. If all is true,
       
   663   // all objects in the heap will be dumped, otherwise only the live
       
   664   // ones. In the dump the following symbols / abbreviations are used:
       
   665   //   M : an explicitly live object (its bitmap bit is set)
       
   666   //   > : an implicitly live object (over tams)
       
   667   //   O : an object outside the G1 heap (typically: in the perm gen)
       
   668   //   NOT : a reference field whose referent is not live
       
   669   //   AND MARKED : indicates that an object is both explicitly and
       
   670   //   implicitly live (it should be one or the other, not both)
       
   671   void print_reachable(const char* str,
       
   672                        bool use_prev_marking, bool all) PRODUCT_RETURN;
   660 
   673 
   661   // Clear the next marking bitmap (will be called concurrently).
   674   // Clear the next marking bitmap (will be called concurrently).
   662   void clearNextBitmap();
   675   void clearNextBitmap();
   663 
   676 
   664   // main CMS steps and related support
   677   // main CMS steps and related support