comparison src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp @ 941:8b46c4d82093

4957990: Perm heap bloat in JVM Summary: Treat ProfileData in MDO's as a source of weak, not strong, roots. Fixes the bug for stop-world collection -- the case of concurrent collection will be fixed separately. Reviewed-by: jcoomes, jmasa, kvn, never
author ysr
date Wed, 02 Sep 2009 00:04:29 -0700
parents 81cd571500b0
children 89e0543e1737 54b3b351d6f9
comparison
equal deleted inserted replaced
940:8624da129f0b 941:8b46c4d82093
56 56
57 NOT_PRODUCT(TraceTime tm("MarkFromRootsTask", 57 NOT_PRODUCT(TraceTime tm("MarkFromRootsTask",
58 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); 58 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
59 ParCompactionManager* cm = 59 ParCompactionManager* cm =
60 ParCompactionManager::gc_thread_compaction_manager(which); 60 ParCompactionManager::gc_thread_compaction_manager(which);
61 // cm->allocate_stacks();
62 assert(cm->stacks_have_been_allocated(), 61 assert(cm->stacks_have_been_allocated(),
63 "Stack space has not been allocated"); 62 "Stack space has not been allocated");
64 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); 63 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
65 64
66 switch (_root_type) { 65 switch (_root_type) {
67 case universe: 66 case universe:
68 Universe::oops_do(&mark_and_push_closure); 67 Universe::oops_do(&mark_and_push_closure);
127 126
128 NOT_PRODUCT(TraceTime tm("RefProcTask", 127 NOT_PRODUCT(TraceTime tm("RefProcTask",
129 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty)); 128 PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
130 ParCompactionManager* cm = 129 ParCompactionManager* cm =
131 ParCompactionManager::gc_thread_compaction_manager(which); 130 ParCompactionManager::gc_thread_compaction_manager(which);
132 // cm->allocate_stacks();
133 assert(cm->stacks_have_been_allocated(), 131 assert(cm->stacks_have_been_allocated(),
134 "Stack space has not been allocated"); 132 "Stack space has not been allocated");
135 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); 133 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
136 PSParallelCompact::FollowStackClosure follow_stack_closure(cm); 134 PSParallelCompact::FollowStackClosure follow_stack_closure(cm);
137 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), 135 _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(),
138 mark_and_push_closure, follow_stack_closure); 136 mark_and_push_closure, follow_stack_closure);
139 } 137 }