24
25 #include "precompiled.hpp"
26 #include "classfile/metadataOnStackMark.hpp"
27 #include "classfile/stringTable.hpp"
28 #include "classfile/symbolTable.hpp"
29 #include "code/codeCache.hpp"
30 #include "code/icBuffer.hpp"
31 #include "gc/g1/bufferingOopClosure.hpp"
32 #include "gc/g1/concurrentMarkThread.inline.hpp"
33 #include "gc/g1/g1Allocator.inline.hpp"
34 #include "gc/g1/g1CollectedHeap.inline.hpp"
35 #include "gc/g1/g1CollectionSet.hpp"
36 #include "gc/g1/g1CollectorPolicy.hpp"
37 #include "gc/g1/g1CollectorState.hpp"
38 #include "gc/g1/g1ConcurrentRefine.hpp"
39 #include "gc/g1/g1ConcurrentRefineThread.hpp"
40 #include "gc/g1/g1EvacStats.inline.hpp"
41 #include "gc/g1/g1FullCollector.hpp"
42 #include "gc/g1/g1FullGCScope.hpp"
43 #include "gc/g1/g1GCPhaseTimes.hpp"
44 #include "gc/g1/g1HeapSizingPolicy.hpp"
45 #include "gc/g1/g1HeapTransition.hpp"
46 #include "gc/g1/g1HeapVerifier.hpp"
47 #include "gc/g1/g1HotCardCache.hpp"
48 #include "gc/g1/g1OopClosures.inline.hpp"
49 #include "gc/g1/g1ParScanThreadState.inline.hpp"
50 #include "gc/g1/g1Policy.hpp"
51 #include "gc/g1/g1RegionToSpaceMapper.hpp"
52 #include "gc/g1/g1RemSet.hpp"
53 #include "gc/g1/g1RootClosures.hpp"
54 #include "gc/g1/g1RootProcessor.hpp"
55 #include "gc/g1/g1StringDedup.hpp"
56 #include "gc/g1/g1YCTypes.hpp"
57 #include "gc/g1/g1YoungRemSetSamplingThread.hpp"
58 #include "gc/g1/heapRegion.inline.hpp"
59 #include "gc/g1/heapRegionRemSet.hpp"
60 #include "gc/g1/heapRegionSet.inline.hpp"
61 #include "gc/g1/vm_operations_g1.hpp"
62 #include "gc/shared/gcHeapSummary.hpp"
63 #include "gc/shared/gcId.hpp"
5376
5377 public:
5378 RebuildStrongCodeRootClosure(G1CollectedHeap* g1h) :
5379 _g1h(g1h) {}
5380
5381 void do_code_blob(CodeBlob* cb) {
5382 nmethod* nm = (cb != NULL) ? cb->as_nmethod_or_null() : NULL;
5383 if (nm == NULL) {
5384 return;
5385 }
5386
5387 if (ScavengeRootsInCode) {
5388 _g1h->register_nmethod(nm);
5389 }
5390 }
5391 };
5392
5393 void G1CollectedHeap::rebuild_strong_code_roots() {
5394 RebuildStrongCodeRootClosure blob_cl(this);
5395 CodeCache::blobs_do(&blob_cl);
5396 }
|
24
25 #include "precompiled.hpp"
26 #include "classfile/metadataOnStackMark.hpp"
27 #include "classfile/stringTable.hpp"
28 #include "classfile/symbolTable.hpp"
29 #include "code/codeCache.hpp"
30 #include "code/icBuffer.hpp"
31 #include "gc/g1/bufferingOopClosure.hpp"
32 #include "gc/g1/concurrentMarkThread.inline.hpp"
33 #include "gc/g1/g1Allocator.inline.hpp"
34 #include "gc/g1/g1CollectedHeap.inline.hpp"
35 #include "gc/g1/g1CollectionSet.hpp"
36 #include "gc/g1/g1CollectorPolicy.hpp"
37 #include "gc/g1/g1CollectorState.hpp"
38 #include "gc/g1/g1ConcurrentRefine.hpp"
39 #include "gc/g1/g1ConcurrentRefineThread.hpp"
40 #include "gc/g1/g1EvacStats.inline.hpp"
41 #include "gc/g1/g1FullCollector.hpp"
42 #include "gc/g1/g1FullGCScope.hpp"
43 #include "gc/g1/g1GCPhaseTimes.hpp"
44 #include "gc/g1/g1GCServicabilitySupport.hpp"
45 #include "gc/g1/g1HeapSizingPolicy.hpp"
46 #include "gc/g1/g1HeapTransition.hpp"
47 #include "gc/g1/g1HeapVerifier.hpp"
48 #include "gc/g1/g1HotCardCache.hpp"
49 #include "gc/g1/g1OopClosures.inline.hpp"
50 #include "gc/g1/g1ParScanThreadState.inline.hpp"
51 #include "gc/g1/g1Policy.hpp"
52 #include "gc/g1/g1RegionToSpaceMapper.hpp"
53 #include "gc/g1/g1RemSet.hpp"
54 #include "gc/g1/g1RootClosures.hpp"
55 #include "gc/g1/g1RootProcessor.hpp"
56 #include "gc/g1/g1StringDedup.hpp"
57 #include "gc/g1/g1YCTypes.hpp"
58 #include "gc/g1/g1YoungRemSetSamplingThread.hpp"
59 #include "gc/g1/heapRegion.inline.hpp"
60 #include "gc/g1/heapRegionRemSet.hpp"
61 #include "gc/g1/heapRegionSet.inline.hpp"
62 #include "gc/g1/vm_operations_g1.hpp"
63 #include "gc/shared/gcHeapSummary.hpp"
64 #include "gc/shared/gcId.hpp"
5377
5378 public:
5379 RebuildStrongCodeRootClosure(G1CollectedHeap* g1h) :
5380 _g1h(g1h) {}
5381
5382 void do_code_blob(CodeBlob* cb) {
5383 nmethod* nm = (cb != NULL) ? cb->as_nmethod_or_null() : NULL;
5384 if (nm == NULL) {
5385 return;
5386 }
5387
5388 if (ScavengeRootsInCode) {
5389 _g1h->register_nmethod(nm);
5390 }
5391 }
5392 };
5393
5394 void G1CollectedHeap::rebuild_strong_code_roots() {
5395 RebuildStrongCodeRootClosure blob_cl(this);
5396 CodeCache::blobs_do(&blob_cl);
5397 }
5398
5399 GCServicabilitySupport* G1CollectedHeap::create_servicability_support() {
5400 return new G1GCServicabilitySupport();
5401 }
|