comparison src/share/vm/gc_implementation/shared/markSweep.cpp @ 6197:d2a62e0f25eb

6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain
author zgu
date Thu, 28 Jun 2012 17:03:16 -0400
parents 1d1603768966
children da91efe96a93
comparison
equal deleted inserted replaced
6174:74533f63b116 6197:d2a62e0f25eb
28 #include "gc_interface/collectedHeap.inline.hpp" 28 #include "gc_interface/collectedHeap.inline.hpp"
29 #include "oops/methodDataOop.hpp" 29 #include "oops/methodDataOop.hpp"
30 #include "oops/objArrayKlass.inline.hpp" 30 #include "oops/objArrayKlass.inline.hpp"
31 #include "oops/oop.inline.hpp" 31 #include "oops/oop.inline.hpp"
32 32
33 Stack<oop> MarkSweep::_marking_stack; 33 Stack<oop, mtGC> MarkSweep::_marking_stack;
34 Stack<DataLayout*> MarkSweep::_revisit_mdo_stack; 34 Stack<DataLayout*, mtGC> MarkSweep::_revisit_mdo_stack;
35 Stack<Klass*> MarkSweep::_revisit_klass_stack; 35 Stack<Klass*, mtGC> MarkSweep::_revisit_klass_stack;
36 Stack<ObjArrayTask> MarkSweep::_objarray_stack; 36 Stack<ObjArrayTask, mtGC> MarkSweep::_objarray_stack;
37 37
38 Stack<oop> MarkSweep::_preserved_oop_stack; 38 Stack<oop, mtGC> MarkSweep::_preserved_oop_stack;
39 Stack<markOop> MarkSweep::_preserved_mark_stack; 39 Stack<markOop, mtGC> MarkSweep::_preserved_mark_stack;
40 size_t MarkSweep::_preserved_count = 0; 40 size_t MarkSweep::_preserved_count = 0;
41 size_t MarkSweep::_preserved_count_max = 0; 41 size_t MarkSweep::_preserved_count_max = 0;
42 PreservedMark* MarkSweep::_preserved_marks = NULL; 42 PreservedMark* MarkSweep::_preserved_marks = NULL;
43 ReferenceProcessor* MarkSweep::_ref_processor = NULL; 43 ReferenceProcessor* MarkSweep::_ref_processor = NULL;
44 44
164 for (size_t i = 0; i < _preserved_count; i++) { 164 for (size_t i = 0; i < _preserved_count; i++) {
165 _preserved_marks[i].adjust_pointer(); 165 _preserved_marks[i].adjust_pointer();
166 } 166 }
167 167
168 // deal with the overflow stack 168 // deal with the overflow stack
169 StackIterator<oop> iter(_preserved_oop_stack); 169 StackIterator<oop, mtGC> iter(_preserved_oop_stack);
170 while (!iter.is_empty()) { 170 while (!iter.is_empty()) {
171 oop* p = iter.next_addr(); 171 oop* p = iter.next_addr();
172 adjust_pointer(p); 172 adjust_pointer(p);
173 } 173 }
174 } 174 }