18 *
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_G1_G1VMOPERATIONS_HPP
26 #define SHARE_GC_G1_G1VMOPERATIONS_HPP
27
28 #include "gc/shared/gcId.hpp"
29 #include "gc/shared/gcVMOperations.hpp"
30
31 // VM_operations for the G1 collector.
32 // VM_GC_Operation:
33 // - VM_G1Concurrent
34 // - VM_G1CollectForAllocation
35 // - VM_G1CollectFull
36
37 class VM_G1CollectFull : public VM_GC_Operation {
38 public:
39 VM_G1CollectFull(uint gc_count_before,
40 uint full_gc_count_before,
41 GCCause::Cause cause) :
42 VM_GC_Operation(gc_count_before, cause, full_gc_count_before, true) { }
43 virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
44 virtual void doit();
45 };
46
47 class VM_G1CollectForAllocation : public VM_CollectForAllocation {
48 bool _pause_succeeded;
49
50 bool _should_initiate_conc_mark;
51 bool _should_retry_gc;
52 double _target_pause_time_ms;
53 uint _old_marking_cycles_completed_before;
54
55 public:
56 VM_G1CollectForAllocation(size_t word_size,
57 uint gc_count_before,
58 GCCause::Cause gc_cause,
59 bool should_initiate_conc_mark,
60 double target_pause_time_ms);
61 virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; }
62 virtual bool doit_prologue();
63 virtual void doit();
64 virtual void doit_epilogue();
|
18 *
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_G1_G1VMOPERATIONS_HPP
26 #define SHARE_GC_G1_G1VMOPERATIONS_HPP
27
28 #include "gc/shared/gcId.hpp"
29 #include "gc/shared/gcVMOperations.hpp"
30
31 // VM_operations for the G1 collector.
32 // VM_GC_Operation:
33 // - VM_G1Concurrent
34 // - VM_G1CollectForAllocation
35 // - VM_G1CollectFull
36
37 class VM_G1CollectFull : public VM_GC_Operation {
38 bool _pause_succeeded;
39
40 public:
41 VM_G1CollectFull(uint gc_count_before,
42 uint full_gc_count_before,
43 GCCause::Cause cause) :
44 VM_GC_Operation(gc_count_before, cause, full_gc_count_before, true),
45 _pause_succeeded(false) { }
46 virtual VMOp_Type type() const { return VMOp_G1CollectFull; }
47 virtual void doit();
48 bool pause_succeeded() { return _pause_succeeded; }
49 };
50
51 class VM_G1CollectForAllocation : public VM_CollectForAllocation {
52 bool _pause_succeeded;
53
54 bool _should_initiate_conc_mark;
55 bool _should_retry_gc;
56 double _target_pause_time_ms;
57 uint _old_marking_cycles_completed_before;
58
59 public:
60 VM_G1CollectForAllocation(size_t word_size,
61 uint gc_count_before,
62 GCCause::Cause gc_cause,
63 bool should_initiate_conc_mark,
64 double target_pause_time_ms);
65 virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; }
66 virtual bool doit_prologue();
67 virtual void doit();
68 virtual void doit_epilogue();
|