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