43 #include "gc/g1/heapRegionSet.hpp" |
43 #include "gc/g1/heapRegionSet.hpp" |
44 #include "gc/g1/youngList.hpp" |
44 #include "gc/g1/youngList.hpp" |
45 #include "gc/shared/barrierSet.hpp" |
45 #include "gc/shared/barrierSet.hpp" |
46 #include "gc/shared/collectedHeap.hpp" |
46 #include "gc/shared/collectedHeap.hpp" |
47 #include "gc/shared/plab.hpp" |
47 #include "gc/shared/plab.hpp" |
|
48 #include "gc/shared/preservedMarks.hpp" |
48 #include "memory/memRegion.hpp" |
49 #include "memory/memRegion.hpp" |
49 #include "utilities/stack.hpp" |
50 #include "utilities/stack.hpp" |
50 |
51 |
51 // A "G1CollectedHeap" is an implementation of a java heap for HotSpot. |
52 // A "G1CollectedHeap" is an implementation of a java heap for HotSpot. |
52 // It uses the "Garbage First" heap organization and algorithm, which |
53 // It uses the "Garbage First" heap organization and algorithm, which |
795 |
796 |
796 // Failed evacuations cause some logical from-space objects to have |
797 // Failed evacuations cause some logical from-space objects to have |
797 // forwarding pointers to themselves. Reset them. |
798 // forwarding pointers to themselves. Reset them. |
798 void remove_self_forwarding_pointers(); |
799 void remove_self_forwarding_pointers(); |
799 |
800 |
800 // Restore the preserved mark words for objects with self-forwarding pointers. |
|
801 void restore_preserved_marks(); |
|
802 |
|
803 // Restore the objects in the regions in the collection set after an |
801 // Restore the objects in the regions in the collection set after an |
804 // evacuation failure. |
802 // evacuation failure. |
805 void restore_after_evac_failure(); |
803 void restore_after_evac_failure(); |
806 |
804 |
807 // Stores marks with the corresponding oop that we need to preserve during evacuation |
805 PreservedMarksSet _preserved_marks_set; |
808 // failure. |
|
809 OopAndMarkOopStack* _preserved_objs; |
|
810 |
806 |
811 // Preserve the mark of "obj", if necessary, in preparation for its mark |
807 // Preserve the mark of "obj", if necessary, in preparation for its mark |
812 // word being overwritten with a self-forwarding-pointer. |
808 // word being overwritten with a self-forwarding-pointer. |
813 void preserve_mark_during_evac_failure(uint worker_id, oop obj, markOop m); |
809 void preserve_mark_during_evac_failure(uint worker_id, oop obj, markOop m); |
814 |
810 |