Mercurial > hg > truffle
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 |