comparison src/share/vm/gc_implementation/g1/heapRegion.hpp @ 3772:6747fd0512e0

7004681: G1: Extend marking verification to Full GCs Summary: Perform a heap verification after the first phase of G1's full GC using objects' mark words to determine liveness. The third parameter of the heap verification routines, which was used in G1 to determine which marking bitmap to use in liveness calculations, has been changed from a boolean to an enum with values defined for using the mark word, and the 'prev' and 'next' bitmaps. Reviewed-by: tonyp, ysr
author johnc
date Tue, 14 Jun 2011 11:01:10 -0700
parents c3f1170908be
children f44782f04dd4
comparison
equal deleted inserted replaced
3771:842b840e67db 3772:6747fd0512e0
853 virtual void reset_after_compaction(); 853 virtual void reset_after_compaction();
854 854
855 void print() const; 855 void print() const;
856 void print_on(outputStream* st) const; 856 void print_on(outputStream* st) const;
857 857
858 // use_prev_marking == true -> use "prev" marking information, 858 // vo == UsePrevMarking -> use "prev" marking information,
859 // use_prev_marking == false -> use "next" marking information 859 // vo == UseNextMarking -> use "next" marking information
860 // vo == UseMarkWord -> use the mark word in the object header
861 //
860 // NOTE: Only the "prev" marking information is guaranteed to be 862 // NOTE: Only the "prev" marking information is guaranteed to be
861 // consistent most of the time, so most calls to this should use 863 // consistent most of the time, so most calls to this should use
862 // use_prev_marking == true. Currently, there is only one case where 864 // vo == UsePrevMarking.
863 // this is called with use_prev_marking == false, which is to verify 865 // Currently, there is only one case where this is called with
864 // the "next" marking information at the end of remark. 866 // vo == UseNextMarking, which is to verify the "next" marking
865 void verify(bool allow_dirty, bool use_prev_marking, bool *failures) const; 867 // information at the end of remark.
868 // Currently there is only one place where this is called with
869 // vo == UseMarkWord, which is to verify the marking during a
870 // full GC.
871 void verify(bool allow_dirty, VerifyOption vo, bool *failures) const;
866 872
867 // Override; it uses the "prev" marking information 873 // Override; it uses the "prev" marking information
868 virtual void verify(bool allow_dirty) const; 874 virtual void verify(bool allow_dirty) const;
869 }; 875 };
870 876