38 #include "gc/serial/markSweep.hpp"
39 #include "gc/shared/gcCause.hpp"
40 #include "gc/shared/gcHeapSummary.hpp"
41 #include "gc/shared/gcId.hpp"
42 #include "gc/shared/gcLocker.inline.hpp"
43 #include "gc/shared/gcTimer.hpp"
44 #include "gc/shared/gcTrace.hpp"
45 #include "gc/shared/gcTraceTime.inline.hpp"
46 #include "gc/shared/isGCActiveMark.hpp"
47 #include "gc/shared/referencePolicy.hpp"
48 #include "gc/shared/referenceProcessor.hpp"
49 #include "gc/shared/spaceDecorator.hpp"
50 #include "logging/log.hpp"
51 #include "oops/oop.inline.hpp"
52 #include "runtime/biasedLocking.hpp"
53 #include "runtime/fprofiler.hpp"
54 #include "runtime/safepoint.hpp"
55 #include "runtime/vmThread.hpp"
56 #include "services/management.hpp"
57 #include "services/memoryService.hpp"
58 #include "utilities/events.hpp"
59 #include "utilities/stack.inline.hpp"
60
61 elapsedTimer PSMarkSweep::_accumulated_time;
62 jlong PSMarkSweep::_time_of_last_gc = 0;
63 CollectorCounters* PSMarkSweep::_counters = NULL;
64
65 void PSMarkSweep::initialize() {
66 MemRegion mr = ParallelScavengeHeap::heap()->reserved_region();
67 set_ref_processor(new ReferenceProcessor(mr)); // a vanilla ref proc
68 _counters = new CollectorCounters("PSMarkSweep", 1);
69 }
70
71 // This method contains all heap specific policy for invoking mark sweep.
72 // PSMarkSweep::invoke_no_policy() will only attempt to mark-sweep-compact
73 // the heap. It will do nothing further. If we need to bail out for policy
74 // reasons, scavenge before full gc, or any other specialized behavior, it
75 // needs to be added here.
76 //
77 // Note that this method should only be called from the vm_thread while
|
38 #include "gc/serial/markSweep.hpp"
39 #include "gc/shared/gcCause.hpp"
40 #include "gc/shared/gcHeapSummary.hpp"
41 #include "gc/shared/gcId.hpp"
42 #include "gc/shared/gcLocker.inline.hpp"
43 #include "gc/shared/gcTimer.hpp"
44 #include "gc/shared/gcTrace.hpp"
45 #include "gc/shared/gcTraceTime.inline.hpp"
46 #include "gc/shared/isGCActiveMark.hpp"
47 #include "gc/shared/referencePolicy.hpp"
48 #include "gc/shared/referenceProcessor.hpp"
49 #include "gc/shared/spaceDecorator.hpp"
50 #include "logging/log.hpp"
51 #include "oops/oop.inline.hpp"
52 #include "runtime/biasedLocking.hpp"
53 #include "runtime/fprofiler.hpp"
54 #include "runtime/safepoint.hpp"
55 #include "runtime/vmThread.hpp"
56 #include "services/management.hpp"
57 #include "services/memoryService.hpp"
58 #include "utilities/align.hpp"
59 #include "utilities/events.hpp"
60 #include "utilities/stack.inline.hpp"
61
62 elapsedTimer PSMarkSweep::_accumulated_time;
63 jlong PSMarkSweep::_time_of_last_gc = 0;
64 CollectorCounters* PSMarkSweep::_counters = NULL;
65
66 void PSMarkSweep::initialize() {
67 MemRegion mr = ParallelScavengeHeap::heap()->reserved_region();
68 set_ref_processor(new ReferenceProcessor(mr)); // a vanilla ref proc
69 _counters = new CollectorCounters("PSMarkSweep", 1);
70 }
71
72 // This method contains all heap specific policy for invoking mark sweep.
73 // PSMarkSweep::invoke_no_policy() will only attempt to mark-sweep-compact
74 // the heap. It will do nothing further. If we need to bail out for policy
75 // reasons, scavenge before full gc, or any other specialized behavior, it
76 // needs to be added here.
77 //
78 // Note that this method should only be called from the vm_thread while
|