24
25 #include "precompiled.hpp"
26 #include "classfile/systemDictionary.hpp"
27 #include "code/codeCache.hpp"
28 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
29 #include "gc_implementation/parallelScavenge/pcTasks.hpp"
30 #include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp"
31 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp"
32 #include "gc_implementation/shared/gcTimer.hpp"
33 #include "gc_implementation/shared/gcTraceTime.hpp"
34 #include "gc_interface/collectedHeap.hpp"
35 #include "memory/universe.hpp"
36 #include "oops/objArrayKlass.inline.hpp"
37 #include "oops/oop.inline.hpp"
38 #include "prims/jvmtiExport.hpp"
39 #include "runtime/fprofiler.hpp"
40 #include "runtime/jniHandles.hpp"
41 #include "runtime/thread.hpp"
42 #include "runtime/vmThread.hpp"
43 #include "services/management.hpp"
44
45 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
46
47 //
48 // ThreadRootsMarkingTask
49 //
50
51 void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) {
52 assert(Universe::heap()->is_gc_active(), "called outside gc");
53
54 ResourceMark rm;
55
56 NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask",
57 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
58 ParCompactionManager* cm =
59 ParCompactionManager::gc_thread_compaction_manager(which);
60
61 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
62 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
63 MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);
|
24
25 #include "precompiled.hpp"
26 #include "classfile/systemDictionary.hpp"
27 #include "code/codeCache.hpp"
28 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
29 #include "gc_implementation/parallelScavenge/pcTasks.hpp"
30 #include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp"
31 #include "gc_implementation/parallelScavenge/psParallelCompact.hpp"
32 #include "gc_implementation/shared/gcTimer.hpp"
33 #include "gc_implementation/shared/gcTraceTime.hpp"
34 #include "gc_interface/collectedHeap.hpp"
35 #include "memory/universe.hpp"
36 #include "oops/objArrayKlass.inline.hpp"
37 #include "oops/oop.inline.hpp"
38 #include "prims/jvmtiExport.hpp"
39 #include "runtime/fprofiler.hpp"
40 #include "runtime/jniHandles.hpp"
41 #include "runtime/thread.hpp"
42 #include "runtime/vmThread.hpp"
43 #include "services/management.hpp"
44 #include "utilities/stack.inline.hpp"
45
46 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
47
48 //
49 // ThreadRootsMarkingTask
50 //
51
52 void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) {
53 assert(Universe::heap()->is_gc_active(), "called outside gc");
54
55 ResourceMark rm;
56
57 NOT_PRODUCT(GCTraceTime tm("ThreadRootsMarkingTask",
58 PrintGCDetails && TraceParallelOldGCTasks, true, NULL, PSParallelCompact::gc_tracer()->gc_id()));
59 ParCompactionManager* cm =
60 ParCompactionManager::gc_thread_compaction_manager(which);
61
62 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
63 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
64 MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations);
|