Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/parallelScavenge/pcTasks.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 | eda078b01c65 |
children | 78bbf4d43a14 |
comparison
equal
deleted
inserted
replaced
10404:d0add7016434 | 10405:f2110083203d |
---|---|
25 #include "precompiled.hpp" | 25 #include "precompiled.hpp" |
26 #include "classfile/systemDictionary.hpp" | 26 #include "classfile/systemDictionary.hpp" |
27 #include "code/codeCache.hpp" | 27 #include "code/codeCache.hpp" |
28 #include "gc_implementation/parallelScavenge/pcTasks.hpp" | 28 #include "gc_implementation/parallelScavenge/pcTasks.hpp" |
29 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp" | 29 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp" |
30 #include "gc_implementation/shared/gcTimer.hpp" | |
31 #include "gc_implementation/shared/gcTraceTime.hpp" | |
30 #include "gc_interface/collectedHeap.hpp" | 32 #include "gc_interface/collectedHeap.hpp" |
31 #include "memory/universe.hpp" | 33 #include "memory/universe.hpp" |
32 #include "oops/objArrayKlass.inline.hpp" | 34 #include "oops/objArrayKlass.inline.hpp" |
33 #include "oops/oop.inline.hpp" | 35 #include "oops/oop.inline.hpp" |
34 #include "oops/oop.pcgc.inline.hpp" | 36 #include "oops/oop.pcgc.inline.hpp" |
46 void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) { | 48 void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) { |
47 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 49 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
48 | 50 |
49 ResourceMark rm; | 51 ResourceMark rm; |
50 | 52 |
51 NOT_PRODUCT(TraceTime tm("ThreadRootsMarkingTask", | 53 NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask", |
52 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 54 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
53 ParCompactionManager* cm = | 55 ParCompactionManager* cm = |
54 ParCompactionManager::gc_thread_compaction_manager(which); | 56 ParCompactionManager::gc_thread_compaction_manager(which); |
55 | 57 |
56 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); | 58 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
57 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true); | 59 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true); |
75 | 77 |
76 | 78 |
77 void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) { | 79 void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) { |
78 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 80 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
79 | 81 |
80 NOT_PRODUCT(TraceTime tm("MarkFromRootsTask", | 82 NOT_PRODUCT(GCTraceTime tm("MarkFromRootsTask", |
81 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 83 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
82 ParCompactionManager* cm = | 84 ParCompactionManager* cm = |
83 ParCompactionManager::gc_thread_compaction_manager(which); | 85 ParCompactionManager::gc_thread_compaction_manager(which); |
84 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); | 86 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
85 PSParallelCompact::FollowKlassClosure follow_klass_closure(&mark_and_push_closure); | 87 PSParallelCompact::FollowKlassClosure follow_klass_closure(&mark_and_push_closure); |
86 | 88 |
146 | 148 |
147 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which) | 149 void RefProcTaskProxy::do_it(GCTaskManager* manager, uint which) |
148 { | 150 { |
149 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 151 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
150 | 152 |
151 NOT_PRODUCT(TraceTime tm("RefProcTask", | 153 NOT_PRODUCT(GCTraceTime tm("RefProcTask", |
152 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 154 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
153 ParCompactionManager* cm = | 155 ParCompactionManager* cm = |
154 ParCompactionManager::gc_thread_compaction_manager(which); | 156 ParCompactionManager::gc_thread_compaction_manager(which); |
155 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); | 157 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
156 PSParallelCompact::FollowStackClosure follow_stack_closure(cm); | 158 PSParallelCompact::FollowStackClosure follow_stack_closure(cm); |
157 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), | 159 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), |
202 _terminator(t) {} | 204 _terminator(t) {} |
203 | 205 |
204 void StealMarkingTask::do_it(GCTaskManager* manager, uint which) { | 206 void StealMarkingTask::do_it(GCTaskManager* manager, uint which) { |
205 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 207 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
206 | 208 |
207 NOT_PRODUCT(TraceTime tm("StealMarkingTask", | 209 NOT_PRODUCT(GCTraceTime tm("StealMarkingTask", |
208 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 210 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
209 | 211 |
210 ParCompactionManager* cm = | 212 ParCompactionManager* cm = |
211 ParCompactionManager::gc_thread_compaction_manager(which); | 213 ParCompactionManager::gc_thread_compaction_manager(which); |
212 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); | 214 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
213 | 215 |
235 _terminator(t) {} | 237 _terminator(t) {} |
236 | 238 |
237 void StealRegionCompactionTask::do_it(GCTaskManager* manager, uint which) { | 239 void StealRegionCompactionTask::do_it(GCTaskManager* manager, uint which) { |
238 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 240 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
239 | 241 |
240 NOT_PRODUCT(TraceTime tm("StealRegionCompactionTask", | 242 NOT_PRODUCT(GCTraceTime tm("StealRegionCompactionTask", |
241 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 243 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
242 | 244 |
243 ParCompactionManager* cm = | 245 ParCompactionManager* cm = |
244 ParCompactionManager::gc_thread_compaction_manager(which); | 246 ParCompactionManager::gc_thread_compaction_manager(which); |
245 | 247 |
246 | 248 |
302 _space_id(space_id), _region_index_start(region_index_start), | 304 _space_id(space_id), _region_index_start(region_index_start), |
303 _region_index_end(region_index_end) {} | 305 _region_index_end(region_index_end) {} |
304 | 306 |
305 void UpdateDensePrefixTask::do_it(GCTaskManager* manager, uint which) { | 307 void UpdateDensePrefixTask::do_it(GCTaskManager* manager, uint which) { |
306 | 308 |
307 NOT_PRODUCT(TraceTime tm("UpdateDensePrefixTask", | 309 NOT_PRODUCT(GCTraceTime tm("UpdateDensePrefixTask", |
308 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 310 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
309 | 311 |
310 ParCompactionManager* cm = | 312 ParCompactionManager* cm = |
311 ParCompactionManager::gc_thread_compaction_manager(which); | 313 ParCompactionManager::gc_thread_compaction_manager(which); |
312 | 314 |
313 PSParallelCompact::update_and_deadwood_in_dense_prefix(cm, | 315 PSParallelCompact::update_and_deadwood_in_dense_prefix(cm, |
317 } | 319 } |
318 | 320 |
319 void DrainStacksCompactionTask::do_it(GCTaskManager* manager, uint which) { | 321 void DrainStacksCompactionTask::do_it(GCTaskManager* manager, uint which) { |
320 assert(Universe::heap()->is_gc_active(), "called outside gc"); | 322 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
321 | 323 |
322 NOT_PRODUCT(TraceTime tm("DrainStacksCompactionTask", | 324 NOT_PRODUCT(GCTraceTime tm("DrainStacksCompactionTask", |
323 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); | 325 PrintGCDetails && TraceParallelOldGCTasks, true, NULL)); |
324 | 326 |
325 ParCompactionManager* cm = | 327 ParCompactionManager* cm = |
326 ParCompactionManager::gc_thread_compaction_manager(which); | 328 ParCompactionManager::gc_thread_compaction_manager(which); |
327 | 329 |
328 uint which_stack_index; | 330 uint which_stack_index; |