< 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 >