< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp

Print this page
rev 59271 : 8240870: Shenandoah: merge evac and update phases
Reviewed-by: XXX


 122     _verify_regions_notrash,
 123 
 124     // No collection set regions allowed
 125     _verify_regions_nocset,
 126 
 127     // No trash and no cset regions allowed
 128     _verify_regions_notrash_nocset
 129   } VerifyRegions;
 130 
 131   typedef enum {
 132     // Disable gc-state verification
 133     _verify_gcstate_disable,
 134 
 135     // Nothing is in progress, no forwarded objects
 136     _verify_gcstate_stable,
 137 
 138     // Nothing is in progress, some objects are forwarded
 139     _verify_gcstate_forwarded,
 140 
 141     // Evacuation is in progress, some objects are forwarded
 142     _verify_gcstate_evacuation



 143   } VerifyGCState;
 144 
 145   typedef enum {
 146     _verify_all_weak_roots,
 147     _verify_serial_weak_roots,
 148     _verify_concurrent_weak_roots
 149   } VerifyWeakRoots;
 150 
 151   struct VerifyOptions {
 152     VerifyForwarded     _verify_forwarded;
 153     VerifyMarked        _verify_marked;
 154     VerifyCollectionSet _verify_cset;
 155     VerifyLiveness      _verify_liveness;
 156     VerifyRegions       _verify_regions;
 157     VerifyGCState       _verify_gcstate;
 158     VerifyWeakRoots     _verify_weak_roots;
 159 
 160     VerifyOptions(VerifyForwarded verify_forwarded,
 161                   VerifyMarked verify_marked,
 162                   VerifyCollectionSet verify_collection_set,


 173 
 174 private:
 175   void verify_at_safepoint(const char *label,
 176                            VerifyForwarded forwarded,
 177                            VerifyMarked marked,
 178                            VerifyCollectionSet cset,
 179                            VerifyLiveness liveness,
 180                            VerifyRegions regions,
 181                            VerifyGCState gcstate,
 182                            VerifyWeakRoots weakRoots);
 183 
 184 public:
 185   ShenandoahVerifier(ShenandoahHeap* heap, MarkBitMap* verification_bitmap) :
 186           _heap(heap), _verification_bit_map(verification_bitmap) {};
 187 
 188   void verify_before_concmark();
 189   void verify_after_concmark();
 190   void verify_before_evacuation();
 191   void verify_during_evacuation();
 192   void verify_after_evacuation();
 193   void verify_before_updaterefs();
 194   void verify_after_updaterefs();
 195   void verify_before_fullgc();
 196   void verify_after_fullgc();
 197   void verify_after_degenerated();
 198   void verify_generic(VerifyOption option);
 199 
 200   // Roots should only contain to-space oops
 201   void verify_roots_in_to_space();
 202   void verify_roots_in_to_space_except(ShenandoahRootVerifier::RootTypes types);
 203 
 204   void verify_roots_no_forwarded();
 205   void verify_roots_no_forwarded_except(ShenandoahRootVerifier::RootTypes types);
 206 };
 207 
 208 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP


 122     _verify_regions_notrash,
 123 
 124     // No collection set regions allowed
 125     _verify_regions_nocset,
 126 
 127     // No trash and no cset regions allowed
 128     _verify_regions_notrash_nocset
 129   } VerifyRegions;
 130 
 131   typedef enum {
 132     // Disable gc-state verification
 133     _verify_gcstate_disable,
 134 
 135     // Nothing is in progress, no forwarded objects
 136     _verify_gcstate_stable,
 137 
 138     // Nothing is in progress, some objects are forwarded
 139     _verify_gcstate_forwarded,
 140 
 141     // Evacuation is in progress, some objects are forwarded
 142     _verify_gcstate_evacuation,
 143 
 144     // Evac-update is in progress, some objects are forwarded
 145     _verify_gcstate_evac_update
 146   } VerifyGCState;
 147 
 148   typedef enum {
 149     _verify_all_weak_roots,
 150     _verify_serial_weak_roots,
 151     _verify_concurrent_weak_roots
 152   } VerifyWeakRoots;
 153 
 154   struct VerifyOptions {
 155     VerifyForwarded     _verify_forwarded;
 156     VerifyMarked        _verify_marked;
 157     VerifyCollectionSet _verify_cset;
 158     VerifyLiveness      _verify_liveness;
 159     VerifyRegions       _verify_regions;
 160     VerifyGCState       _verify_gcstate;
 161     VerifyWeakRoots     _verify_weak_roots;
 162 
 163     VerifyOptions(VerifyForwarded verify_forwarded,
 164                   VerifyMarked verify_marked,
 165                   VerifyCollectionSet verify_collection_set,


 176 
 177 private:
 178   void verify_at_safepoint(const char *label,
 179                            VerifyForwarded forwarded,
 180                            VerifyMarked marked,
 181                            VerifyCollectionSet cset,
 182                            VerifyLiveness liveness,
 183                            VerifyRegions regions,
 184                            VerifyGCState gcstate,
 185                            VerifyWeakRoots weakRoots);
 186 
 187 public:
 188   ShenandoahVerifier(ShenandoahHeap* heap, MarkBitMap* verification_bitmap) :
 189           _heap(heap), _verification_bit_map(verification_bitmap) {};
 190 
 191   void verify_before_concmark();
 192   void verify_after_concmark();
 193   void verify_before_evacuation();
 194   void verify_during_evacuation();
 195   void verify_after_evacuation();
 196   void verify_before_evac_update();
 197   void verify_after_evac_update();
 198   void verify_before_fullgc();
 199   void verify_after_fullgc();
 200   void verify_after_degenerated();
 201   void verify_generic(VerifyOption option);
 202 
 203   // Roots should only contain to-space oops
 204   void verify_roots_in_to_space();
 205   void verify_roots_in_to_space_except(ShenandoahRootVerifier::RootTypes types);
 206 
 207   void verify_roots_no_forwarded();
 208   void verify_roots_no_forwarded_except(ShenandoahRootVerifier::RootTypes types);
 209 };
 210 
 211 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP
< prev index next >