< prev index next >

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

Print this page
*** 55,10 ***
--- 55,28 ---
  class ShenandoahVerifier : public CHeapObj<mtGC> {
  private:
    ShenandoahHeap* _heap;
    MarkBitMap* _verification_bit_map;
  public:
+   typedef enum {
+     // Disable remembered set verification.
+     _verify_remembered_disable,
+ 
+     // Assure old objects are registered and remembered set cards within the read-only remembered set are dirty
+     // for every interesting pointer within each OLD ShenandoahHeapRegion between bottom() and top().  This is
+     // appropriate at the init_mark safepoint since all TLABS are retired before we reach this code.
+     _verify_remembered_for_marking,
+ 
+     // Assure old objects are registered and remembered set cards within the read-write remembered set are dirty
+     // for every interesting pointer within each OLD ShenandoahHeapRegion between bottom() and top().
+     _verify_remembered_for_updating_references,
+ 
+     // Assure old objects are registered and remembered set cards within the read-write remembered set are dirty
+     // for every interesting pointer within each OLD ShenandoahHeapRegion between bottom() and top().
+     _verify_remembered_after_full_gc
+   } VerifyRememberedSet;
+ 
    typedef enum {
      // Disable marked objects verification.
      _verify_marked_disable,
  
      // Objects should be marked in "next" bitmap.

*** 134,11 ***
  
      // Nothing is in progress, some objects are forwarded
      _verify_gcstate_forwarded,
  
      // Evacuation is in progress, some objects are forwarded
!     _verify_gcstate_evacuation
    } VerifyGCState;
  
    struct VerifyOptions {
      VerifyForwarded     _verify_forwarded;
      VerifyMarked        _verify_marked;
--- 152,14 ---
  
      // Nothing is in progress, some objects are forwarded
      _verify_gcstate_forwarded,
  
      // Evacuation is in progress, some objects are forwarded
!     _verify_gcstate_evacuation,
+ 
+     // Evacuation is done, objects are forwarded, updating is in progress
+     _verify_gcstate_updating
    } VerifyGCState;
  
    struct VerifyOptions {
      VerifyForwarded     _verify_forwarded;
      VerifyMarked        _verify_marked;

*** 158,11 ***
              _verify_liveness(verify_liveness), _verify_regions(verify_regions),
              _verify_gcstate(verify_gcstate) {}
    };
  
  private:
!   void verify_at_safepoint(const char *label,
                             VerifyForwarded forwarded,
                             VerifyMarked marked,
                             VerifyCollectionSet cset,
                             VerifyLiveness liveness,
                             VerifyRegions regions,
--- 179,12 ---
              _verify_liveness(verify_liveness), _verify_regions(verify_regions),
              _verify_gcstate(verify_gcstate) {}
    };
  
  private:
!   void verify_at_safepoint(const char* label,
+                            VerifyRememberedSet remembered,
                             VerifyForwarded forwarded,
                             VerifyMarked marked,
                             VerifyCollectionSet cset,
                             VerifyLiveness liveness,
                             VerifyRegions regions,

*** 179,10 ***
--- 201,11 ---
    void verify_after_evacuation();
    void verify_before_updaterefs();
    void verify_after_updaterefs();
    void verify_before_fullgc();
    void verify_after_fullgc();
+   void verify_after_generational_fullgc();
    void verify_after_degenerated();
    void verify_generic(VerifyOption option);
  
    // Roots should only contain to-space oops
    void verify_roots_in_to_space();
< prev index next >