72 // Before the collection
73 // Objects are in eden or from-space
74 // All roots into the young generation point into eden or from-space.
75 //
76 // After a failed collection
77 // Objects may be in eden, from-space, or to-space
78 // An object A in eden or from-space may have a copy B
79 // in to-space. If B exists, all roots that once pointed
80 // to A must now point to B.
81 // All objects in the young generation are unmarked.
82 // Eden, from-space, and to-space will all be collected by
83 // the full collection.
84 void handle_promotion_failure(oop);
85
86 // In the absence of promotion failure, we wouldn't look at "from-space"
87 // objects after a young-gen collection. When promotion fails, however,
88 // the subsequent full collection will look at from-space objects:
89 // therefore we must remove their forwarding pointers.
90 void remove_forwarding_pointers();
91
92 // Preserved marks
93 PreservedMarksSet _preserved_marks_set;
94
95 // Promotion failure handling
96 ExtendedOopClosure *_promo_failure_scan_stack_closure;
97 void set_promo_failure_scan_stack_closure(ExtendedOopClosure *scan_stack_closure) {
98 _promo_failure_scan_stack_closure = scan_stack_closure;
99 }
100
101 Stack<oop, mtGC> _promo_failure_scan_stack;
102 void drain_promo_failure_scan_stack(void);
103 bool _promo_failure_drain_in_progress;
104
105 // Performance Counters
106 GenerationCounters* _gen_counters;
107 CSpaceCounters* _eden_counters;
108 CSpaceCounters* _from_counters;
109 CSpaceCounters* _to_counters;
110
111 // sizing information
|
72 // Before the collection
73 // Objects are in eden or from-space
74 // All roots into the young generation point into eden or from-space.
75 //
76 // After a failed collection
77 // Objects may be in eden, from-space, or to-space
78 // An object A in eden or from-space may have a copy B
79 // in to-space. If B exists, all roots that once pointed
80 // to A must now point to B.
81 // All objects in the young generation are unmarked.
82 // Eden, from-space, and to-space will all be collected by
83 // the full collection.
84 void handle_promotion_failure(oop);
85
86 // In the absence of promotion failure, we wouldn't look at "from-space"
87 // objects after a young-gen collection. When promotion fails, however,
88 // the subsequent full collection will look at from-space objects:
89 // therefore we must remove their forwarding pointers.
90 void remove_forwarding_pointers();
91
92 virtual void restore_preserved_marks();
93
94 // Preserved marks
95 PreservedMarksSet _preserved_marks_set;
96
97 // Promotion failure handling
98 ExtendedOopClosure *_promo_failure_scan_stack_closure;
99 void set_promo_failure_scan_stack_closure(ExtendedOopClosure *scan_stack_closure) {
100 _promo_failure_scan_stack_closure = scan_stack_closure;
101 }
102
103 Stack<oop, mtGC> _promo_failure_scan_stack;
104 void drain_promo_failure_scan_stack(void);
105 bool _promo_failure_drain_in_progress;
106
107 // Performance Counters
108 GenerationCounters* _gen_counters;
109 CSpaceCounters* _eden_counters;
110 CSpaceCounters* _from_counters;
111 CSpaceCounters* _to_counters;
112
113 // sizing information
|