< prev index next >

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

Print this page
rev 52355 : Remove safepoint-cleanup piggybacking code

*** 42,55 **** class VM_ShenandoahOperation : public VM_Operation { protected: uint _gc_id; public: ! bool _safepoint_cleanup_done; ! VM_ShenandoahOperation() : _gc_id(GCId::current()), _safepoint_cleanup_done(false) {}; ! virtual bool deflates_idle_monitors() { return ShenandoahMergeSafepointCleanup && ! _safepoint_cleanup_done; } ! virtual bool marks_nmethods() { return ShenandoahMergeSafepointCleanup && ! _safepoint_cleanup_done; } }; class VM_ShenandoahReferenceOperation : public VM_ShenandoahOperation { public: VM_ShenandoahReferenceOperation() : VM_ShenandoahOperation() {}; --- 42,52 ---- class VM_ShenandoahOperation : public VM_Operation { protected: uint _gc_id; public: ! VM_ShenandoahOperation() : _gc_id(GCId::current()) {}; }; class VM_ShenandoahReferenceOperation : public VM_ShenandoahOperation { public: VM_ShenandoahReferenceOperation() : VM_ShenandoahOperation() {};
*** 77,88 **** public: VM_ShenandoahFinalEvac() : VM_ShenandoahOperation() {}; VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalEvac; } const char* name() const { return "Shenandoah Final Evacuation"; } virtual void doit(); - bool deflates_idle_monitors() { return false; } - bool marks_nmethods() { return false; } }; class VM_ShenandoahDegeneratedGC: public VM_ShenandoahReferenceOperation { private: // Really the ShenandoahHeap::ShenandoahDegenerationPoint, but casted to int here --- 74,83 ----
*** 91,120 **** public: VM_ShenandoahDegeneratedGC(int point) : VM_ShenandoahReferenceOperation(), _point(point) {}; VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahDegeneratedGC; } const char* name() const { return "Shenandoah Degenerated GC"; } virtual void doit(); - - // Degenerate GC may be upgraded to Full GC, and therefore we need to block deflation and - // marking, as VM_ShenandoahFullGC does. - bool deflates_idle_monitors() { return false; } - bool marks_nmethods() { return false; } }; class VM_ShenandoahFullGC : public VM_ShenandoahReferenceOperation { private: GCCause::Cause _gc_cause; public: VM_ShenandoahFullGC(GCCause::Cause gc_cause) : VM_ShenandoahReferenceOperation(), _gc_cause(gc_cause) {}; VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFullGC; } const char* name() const { return "Shenandoah Full GC"; } virtual void doit(); - // Full-GC cannot deflate monitors and mark nmethods, because it installs a speciall BarrierSet - // that disables read-barriers. However, the monitor and nmethod code requires read-barriers - // to work correctly. - bool deflates_idle_monitors() { return false; } - bool marks_nmethods() { return false; } }; class VM_ShenandoahInitTraversalGC: public VM_ShenandoahOperation { public: VM_ShenandoahInitTraversalGC() : VM_ShenandoahOperation() {}; --- 86,105 ----
*** 135,147 **** public: VM_ShenandoahInitUpdateRefs() : VM_ShenandoahOperation() {}; VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahInitUpdateRefs; } const char* name() const { return "Shenandoah Init Update References"; } virtual void doit(); - // We cannot deflate monitors and mark nmethods here, because it doesn't scan roots. - bool deflates_idle_monitors() { return false; } - bool marks_nmethods() { return false; } }; class VM_ShenandoahFinalUpdateRefs: public VM_ShenandoahOperation { public: VM_ShenandoahFinalUpdateRefs() : VM_ShenandoahOperation() {}; --- 120,129 ----
< prev index next >