< prev index next >

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

Print this page

 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *
 23  */
 24 
 25 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
 26 #define SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
 27 
 28 #include "gc/shared/gcVMOperations.hpp"
 29 
 30 class ShenandoahConcurrentGC;
 31 class ShenandoahDegenGC;
 32 class ShenandoahFullGC;
 33 
 34 // VM_operations for the Shenandoah Collector.
 35 //
 36 // VM_ShenandoahOperation
 37 //   - VM_ShenandoahInitMark: initiate concurrent marking
 38 //   - VM_ShenandoahFinalMarkStartEvac: finish up concurrent marking, and start evacuation

 39 //   - VM_ShenandoahInitUpdateRefs: initiate update references
 40 //   - VM_ShenandoahFinalUpdateRefs: finish up update references
 41 //   - VM_ShenandoahFinalVerify: final verification at the end of the cycle
 42 //   - VM_ShenandoahReferenceOperation:
 43 //       - VM_ShenandoahFullGC: do full GC
 44 //       - VM_ShenandoahDegeneratedGC: do STW degenerated GC
 45 
 46 class VM_ShenandoahOperation : public VM_Operation {
 47 protected:
 48   uint _gc_id;
 49   ShenandoahGeneration* _generation;
 50 
 51   void set_active_generation();
 52 public:
 53   explicit VM_ShenandoahOperation(ShenandoahGeneration* generation)
 54   : _gc_id(GCId::current())
 55   , _generation(generation) {
 56   }
 57 
 58   bool skip_thread_oop_barriers() const override { return true; }

110 };
111 
112 class VM_ShenandoahInitUpdateRefs: public VM_ShenandoahOperation {
113   ShenandoahConcurrentGC* const _gc;
114 public:
115   explicit VM_ShenandoahInitUpdateRefs(ShenandoahConcurrentGC* gc);
116   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahInitUpdateRefs; }
117   const char* name()             const override { return "Shenandoah Init Update References"; }
118   void doit() override;
119 };
120 
121 class VM_ShenandoahFinalUpdateRefs: public VM_ShenandoahOperation {
122   ShenandoahConcurrentGC* const _gc;
123 public:
124   explicit VM_ShenandoahFinalUpdateRefs(ShenandoahConcurrentGC* gc);
125   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahFinalUpdateRefs; }
126   const char* name()             const override { return "Shenandoah Final Update References"; }
127   void doit() override;
128 };
129 









130 class VM_ShenandoahFinalVerify: public VM_ShenandoahOperation {
131   ShenandoahConcurrentGC* const _gc;
132 public:
133   explicit VM_ShenandoahFinalVerify(ShenandoahConcurrentGC* gc);
134   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahFinalVerify; }
135   const char* name()             const override { return "Shenandoah Final Verify"; }
136   void doit() override;
137 };
138 
139 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP

 19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 20  * or visit www.oracle.com if you need additional information or have any
 21  * questions.
 22  *
 23  */
 24 
 25 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
 26 #define SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
 27 
 28 #include "gc/shared/gcVMOperations.hpp"
 29 
 30 class ShenandoahConcurrentGC;
 31 class ShenandoahDegenGC;
 32 class ShenandoahFullGC;
 33 
 34 // VM_operations for the Shenandoah Collector.
 35 //
 36 // VM_ShenandoahOperation
 37 //   - VM_ShenandoahInitMark: initiate concurrent marking
 38 //   - VM_ShenandoahFinalMarkStartEvac: finish up concurrent marking, and start evacuation
 39 //   - VM_ShenandoahFinalRoots: finish up roots processing
 40 //   - VM_ShenandoahInitUpdateRefs: initiate update references
 41 //   - VM_ShenandoahFinalUpdateRefs: finish up update references
 42 //   - VM_ShenandoahFinalVerify: final verification at the end of the cycle
 43 //   - VM_ShenandoahReferenceOperation:
 44 //       - VM_ShenandoahFullGC: do full GC
 45 //       - VM_ShenandoahDegeneratedGC: do STW degenerated GC
 46 
 47 class VM_ShenandoahOperation : public VM_Operation {
 48 protected:
 49   uint _gc_id;
 50   ShenandoahGeneration* _generation;
 51 
 52   void set_active_generation();
 53 public:
 54   explicit VM_ShenandoahOperation(ShenandoahGeneration* generation)
 55   : _gc_id(GCId::current())
 56   , _generation(generation) {
 57   }
 58 
 59   bool skip_thread_oop_barriers() const override { return true; }

111 };
112 
113 class VM_ShenandoahInitUpdateRefs: public VM_ShenandoahOperation {
114   ShenandoahConcurrentGC* const _gc;
115 public:
116   explicit VM_ShenandoahInitUpdateRefs(ShenandoahConcurrentGC* gc);
117   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahInitUpdateRefs; }
118   const char* name()             const override { return "Shenandoah Init Update References"; }
119   void doit() override;
120 };
121 
122 class VM_ShenandoahFinalUpdateRefs: public VM_ShenandoahOperation {
123   ShenandoahConcurrentGC* const _gc;
124 public:
125   explicit VM_ShenandoahFinalUpdateRefs(ShenandoahConcurrentGC* gc);
126   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahFinalUpdateRefs; }
127   const char* name()             const override { return "Shenandoah Final Update References"; }
128   void doit() override;
129 };
130 
131 class VM_ShenandoahFinalRoots: public VM_ShenandoahOperation {
132   ShenandoahConcurrentGC* const _gc;
133 public:
134   explicit VM_ShenandoahFinalRoots(ShenandoahConcurrentGC* gc);
135   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahFinalRoots; }
136   const char* name()             const override { return "Shenandoah Final Roots"; }
137   void doit() override;
138 };
139 
140 class VM_ShenandoahFinalVerify: public VM_ShenandoahOperation {
141   ShenandoahConcurrentGC* const _gc;
142 public:
143   explicit VM_ShenandoahFinalVerify(ShenandoahConcurrentGC* gc);
144   VM_Operation::VMOp_Type type() const override { return VMOp_ShenandoahFinalVerify; }
145   const char* name()             const override { return "Shenandoah Final Verify"; }
146   void doit() override;
147 };
148 
149 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
< prev index next >