23 */ |
23 */ |
24 |
24 |
25 #ifndef SHARE_VM_GC_G1_VM_OPERATIONS_G1_HPP |
25 #ifndef SHARE_VM_GC_G1_VM_OPERATIONS_G1_HPP |
26 #define SHARE_VM_GC_G1_VM_OPERATIONS_G1_HPP |
26 #define SHARE_VM_GC_G1_VM_OPERATIONS_G1_HPP |
27 |
27 |
28 #include "gc/g1/g1AllocationContext.hpp" |
|
29 #include "gc/shared/gcId.hpp" |
28 #include "gc/shared/gcId.hpp" |
30 #include "gc/shared/vmGCOperations.hpp" |
29 #include "gc/shared/vmGCOperations.hpp" |
31 |
30 |
32 // VM_operations for the G1 collector. |
31 // VM_operations for the G1 collector. |
33 // VM_GC_Operation: |
32 // VM_GC_Operation: |
49 }; |
48 }; |
50 |
49 |
51 class VM_G1CollectForAllocation: public VM_CollectForAllocation { |
50 class VM_G1CollectForAllocation: public VM_CollectForAllocation { |
52 private: |
51 private: |
53 bool _pause_succeeded; |
52 bool _pause_succeeded; |
54 AllocationContext_t _allocation_context; |
|
55 |
53 |
56 bool _should_initiate_conc_mark; |
54 bool _should_initiate_conc_mark; |
57 bool _should_retry_gc; |
55 bool _should_retry_gc; |
58 double _target_pause_time_ms; |
56 double _target_pause_time_ms; |
59 uint _old_marking_cycles_completed_before; |
57 uint _old_marking_cycles_completed_before; |
60 public: |
58 public: |
61 VM_G1CollectForAllocation(size_t word_size, |
59 VM_G1CollectForAllocation(size_t word_size, |
62 uint gc_count_before, |
60 uint gc_count_before, |
63 GCCause::Cause gc_cause, |
61 GCCause::Cause gc_cause, |
64 bool should_initiate_conc_mark, |
62 bool should_initiate_conc_mark, |
65 double target_pause_time_ms, |
63 double target_pause_time_ms); |
66 AllocationContext_t allocation_context); |
|
67 virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; } |
64 virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; } |
68 virtual bool doit_prologue(); |
65 virtual bool doit_prologue(); |
69 virtual void doit(); |
66 virtual void doit(); |
70 virtual void doit_epilogue(); |
67 virtual void doit_epilogue(); |
71 virtual const char* name() const { |
68 virtual const char* name() const { |