hotspot/src/share/vm/runtime/vm_operations.hpp
changeset 46495 34f7d403039f
parent 46329 53ccc37bda19
equal deleted inserted replaced
46494:3fdd343bc5ea 46495:34f7d403039f
   104   template(DumpHashtable)                         \
   104   template(DumpHashtable)                         \
   105   template(DumpTouchedMethods)                    \
   105   template(DumpTouchedMethods)                    \
   106   template(MarkActiveNMethods)                    \
   106   template(MarkActiveNMethods)                    \
   107   template(PrintCompileQueue)                     \
   107   template(PrintCompileQueue)                     \
   108   template(PrintClassHierarchy)                   \
   108   template(PrintClassHierarchy)                   \
       
   109   template(ThreadSuspend)                         \
       
   110   template(CTWThreshold)                          \
       
   111   template(ThreadsSuspendJVMTI)                   \
       
   112   template(ICBufferFull)                          \
       
   113   template(ScavengeMonitors)                      \
   109 
   114 
   110 class VM_Operation: public CHeapObj<mtInternal> {
   115 class VM_Operation: public CHeapObj<mtInternal> {
   111  public:
   116  public:
   112   enum Mode {
   117   enum Mode {
   113     _safepoint,       // blocking,        safepoint, vm_op C-heap allocated
   118     _safepoint,       // blocking,        safepoint, vm_op C-heap allocated
   236   VM_ClearICs(bool preserve_static_stubs) { _preserve_static_stubs = preserve_static_stubs; }
   241   VM_ClearICs(bool preserve_static_stubs) { _preserve_static_stubs = preserve_static_stubs; }
   237   void doit();
   242   void doit();
   238   VMOp_Type type() const { return VMOp_ClearICs; }
   243   VMOp_Type type() const { return VMOp_ClearICs; }
   239 };
   244 };
   240 
   245 
   241 // dummy vm op, evaluated just to force a safepoint
   246 // empty vm op, evaluated just to force a safepoint
   242 class VM_ForceSafepoint: public VM_Operation {
   247 class VM_ForceSafepoint: public VM_Operation {
   243  public:
   248  public:
   244   VM_ForceSafepoint() {}
       
   245   void doit()         {}
   249   void doit()         {}
   246   VMOp_Type type() const { return VMOp_ForceSafepoint; }
   250   VMOp_Type type() const { return VMOp_ForceSafepoint; }
   247 };
   251 };
   248 
   252 
   249 // dummy vm op, evaluated just to force a safepoint
   253 // empty vm op, when forcing a safepoint to suspend a thread
   250 class VM_ForceAsyncSafepoint: public VM_Operation {
   254 class VM_ThreadSuspend: public VM_ForceSafepoint {
   251  public:
   255  public:
   252   VM_ForceAsyncSafepoint() {}
   256   VMOp_Type type() const { return VMOp_ThreadSuspend; }
   253   void doit()              {}
   257 };
   254   VMOp_Type type() const                         { return VMOp_ForceAsyncSafepoint; }
   258 
       
   259 // empty vm op, when forcing a safepoint due to ctw threshold is reached for the sweeper
       
   260 class VM_CTWThreshold: public VM_ForceSafepoint {
       
   261  public:
       
   262   VMOp_Type type() const { return VMOp_CTWThreshold; }
       
   263 };
       
   264 
       
   265 // empty vm op, when forcing a safepoint to suspend threads from jvmti
       
   266 class VM_ThreadsSuspendJVMTI: public VM_ForceSafepoint {
       
   267  public:
       
   268   VMOp_Type type() const { return VMOp_ThreadsSuspendJVMTI; }
       
   269 };
       
   270 
       
   271 // empty vm op, when forcing a safepoint due to inline cache buffers being full
       
   272 class VM_ICBufferFull: public VM_ForceSafepoint {
       
   273  public:
       
   274   VMOp_Type type() const { return VMOp_ICBufferFull; }
       
   275 };
       
   276 
       
   277 // empty asynchronous vm op, when forcing a safepoint to scavenge monitors
       
   278 class VM_ScavengeMonitors: public VM_ForceSafepoint {
       
   279  public:
       
   280   VMOp_Type type() const                         { return VMOp_ScavengeMonitors; }
   255   Mode evaluation_mode() const                   { return _async_safepoint; }
   281   Mode evaluation_mode() const                   { return _async_safepoint; }
   256   bool is_cheap_allocated() const                { return true; }
   282   bool is_cheap_allocated() const                { return true; }
   257 };
   283 };
   258 
   284 
   259 class VM_Deoptimize: public VM_Operation {
   285 class VM_Deoptimize: public VM_Operation {