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;