< prev index next >
src/share/vm/gc_implementation/shenandoah/shenandoahVerifier.hpp
Print this page
rev 10549 : [backport] Verify global and local gc-state status
rev 10551 : [backport] Remove safe_equals()
rev 10637 : [backport] Purge partial heuristics and connection matrix infrastructure
@@ -62,25 +62,10 @@
private:
ShenandoahHeap* _heap;
MarkBitMap* _verification_bit_map;
public:
typedef enum {
- // Disable matrix verification completely
- _verify_matrix_disable,
-
- // Conservative matrix verification: all connected objects should have matrix
- // connections. The verification is conservative, because it allows matrix
- // connection that do not have actual heap connections.
- _verify_matrix_conservative,
-
- // Precise matrix verification: all connected objects should have matrix connections,
- // *and* every matrix connection should have at least a pair a connected objects.
- // TODO: implement this, if needed
- _verify_matrix_precise,
- } VerifyMatrix;
-
- typedef enum {
// Disable marked objects verification.
_verify_marked_disable,
// Objects should be marked in "next" bitmap.
_verify_marked_next,
@@ -137,37 +122,49 @@
// No trash and no cset regions allowed
_verify_regions_notrash_nocset,
} VerifyRegions;
+ typedef enum {
+ // Disable gc-state verification
+ _verify_gcstate_disable,
+
+ // Nothing is in progress, no forwarded objects
+ _verify_gcstate_stable,
+
+ // Nothing is in progress, some objects are forwarded
+ _verify_gcstate_forwarded,
+ } VerifyGCState;
+
struct VerifyOptions {
VerifyForwarded _verify_forwarded;
VerifyMarked _verify_marked;
- VerifyMatrix _verify_matrix;
VerifyCollectionSet _verify_cset;
VerifyLiveness _verify_liveness;
VerifyRegions _verify_regions;
+ VerifyGCState _verify_gcstate;
VerifyOptions(VerifyForwarded verify_forwarded,
VerifyMarked verify_marked,
- VerifyMatrix verify_matrix,
VerifyCollectionSet verify_collection_set,
VerifyLiveness verify_liveness,
- VerifyRegions verify_regions) :
+ VerifyRegions verify_regions,
+ VerifyGCState verify_gcstate) :
_verify_forwarded(verify_forwarded), _verify_marked(verify_marked),
- _verify_matrix(verify_matrix), _verify_cset(verify_collection_set),
- _verify_liveness(verify_liveness), _verify_regions(verify_regions) {}
+ _verify_cset(verify_collection_set),
+ _verify_liveness(verify_liveness), _verify_regions(verify_regions),
+ _verify_gcstate(verify_gcstate) {}
};
private:
void verify_at_safepoint(const char *label,
VerifyForwarded forwarded,
VerifyMarked marked,
- VerifyMatrix matrix,
VerifyCollectionSet cset,
VerifyLiveness liveness,
- VerifyRegions regions);
+ VerifyRegions regions,
+ VerifyGCState gcstate);
public:
ShenandoahVerifier(ShenandoahHeap* heap, MarkBitMap* verification_bitmap) :
_heap(heap), _verification_bit_map(verification_bitmap) {};
@@ -177,12 +174,10 @@
void verify_after_evacuation();
void verify_before_updaterefs();
void verify_after_updaterefs();
void verify_before_fullgc();
void verify_after_fullgc();
- void verify_before_partial();
- void verify_after_partial();
void verify_after_degenerated();
void verify_generic(VerifyOption option);
};
#endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
< prev index next >