Mercurial > hg > graal-compiler
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) |