comparison src/share/vm/gc_implementation/shared/markSweep.cpp @ 10405:f2110083203d

8005849: JEP 167: Event-Based JVM Tracing Reviewed-by: acorn, coleenp, sla Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
author sla
date Mon, 10 Jun 2013 11:30:51 +0200
parents 2138a2c14831
children 55a0da3d420b
comparison
equal deleted inserted replaced
10404:d0add7016434 10405:f2110083203d
22 * 22 *
23 */ 23 */
24 24
25 #include "precompiled.hpp" 25 #include "precompiled.hpp"
26 #include "compiler/compileBroker.hpp" 26 #include "compiler/compileBroker.hpp"
27 #include "gc_implementation/shared/gcTimer.hpp"
28 #include "gc_implementation/shared/gcTrace.hpp"
27 #include "gc_implementation/shared/markSweep.inline.hpp" 29 #include "gc_implementation/shared/markSweep.inline.hpp"
28 #include "gc_interface/collectedHeap.inline.hpp" 30 #include "gc_interface/collectedHeap.inline.hpp"
29 #include "oops/methodData.hpp" 31 #include "oops/methodData.hpp"
30 #include "oops/objArrayKlass.inline.hpp" 32 #include "oops/objArrayKlass.inline.hpp"
31 #include "oops/oop.inline.hpp" 33 #include "oops/oop.inline.hpp"
39 Stack<markOop, mtGC> MarkSweep::_preserved_mark_stack; 41 Stack<markOop, mtGC> MarkSweep::_preserved_mark_stack;
40 size_t MarkSweep::_preserved_count = 0; 42 size_t MarkSweep::_preserved_count = 0;
41 size_t MarkSweep::_preserved_count_max = 0; 43 size_t MarkSweep::_preserved_count_max = 0;
42 PreservedMark* MarkSweep::_preserved_marks = NULL; 44 PreservedMark* MarkSweep::_preserved_marks = NULL;
43 ReferenceProcessor* MarkSweep::_ref_processor = NULL; 45 ReferenceProcessor* MarkSweep::_ref_processor = NULL;
46 STWGCTimer* MarkSweep::_gc_timer = NULL;
47 SerialOldTracer* MarkSweep::_gc_tracer = NULL;
44 48
45 MarkSweep::FollowRootClosure MarkSweep::follow_root_closure; 49 MarkSweep::FollowRootClosure MarkSweep::follow_root_closure;
46 CodeBlobToOopClosure MarkSweep::follow_code_root_closure(&MarkSweep::follow_root_closure, /*do_marking=*/ true); 50 CodeBlobToOopClosure MarkSweep::follow_code_root_closure(&MarkSweep::follow_root_closure, /*do_marking=*/ true);
47 51
48 void MarkSweep::FollowRootClosure::do_oop(oop* p) { follow_root(p); } 52 void MarkSweep::FollowRootClosure::do_oop(oop* p) { follow_root(p); }
171 MarkSweep::KeepAliveClosure MarkSweep::keep_alive; 175 MarkSweep::KeepAliveClosure MarkSweep::keep_alive;
172 176
173 void MarkSweep::KeepAliveClosure::do_oop(oop* p) { MarkSweep::KeepAliveClosure::do_oop_work(p); } 177 void MarkSweep::KeepAliveClosure::do_oop(oop* p) { MarkSweep::KeepAliveClosure::do_oop_work(p); }
174 void MarkSweep::KeepAliveClosure::do_oop(narrowOop* p) { MarkSweep::KeepAliveClosure::do_oop_work(p); } 178 void MarkSweep::KeepAliveClosure::do_oop(narrowOop* p) { MarkSweep::KeepAliveClosure::do_oop_work(p); }
175 179
176 void marksweep_init() { /* empty */ } 180 void marksweep_init() {
181 MarkSweep::_gc_timer = new (ResourceObj::C_HEAP, mtGC) STWGCTimer();
182 MarkSweep::_gc_tracer = new (ResourceObj::C_HEAP, mtGC) SerialOldTracer();
183 }
177 184
178 #ifndef PRODUCT 185 #ifndef PRODUCT
179 186
180 void MarkSweep::trace(const char* msg) { 187 void MarkSweep::trace(const char* msg) {
181 if (TraceMarkSweep) 188 if (TraceMarkSweep)