25 #include "precompiled.hpp"
26 #include "classfile/javaClasses.inline.hpp"
27 #include "gc/parallel/mutableSpace.hpp"
28 #include "gc/parallel/parallelScavengeHeap.hpp"
29 #include "gc/parallel/psOldGen.hpp"
30 #include "gc/parallel/psPromotionManager.inline.hpp"
31 #include "gc/parallel/psScavenge.inline.hpp"
32 #include "gc/shared/continuationGCSupport.inline.hpp"
33 #include "gc/shared/gcTrace.hpp"
34 #include "gc/shared/preservedMarks.inline.hpp"
35 #include "gc/shared/taskqueue.inline.hpp"
36 #include "logging/log.hpp"
37 #include "logging/logStream.hpp"
38 #include "memory/allocation.inline.hpp"
39 #include "memory/iterator.inline.hpp"
40 #include "memory/memRegion.hpp"
41 #include "memory/padded.inline.hpp"
42 #include "memory/resourceArea.hpp"
43 #include "oops/access.inline.hpp"
44 #include "oops/compressedOops.inline.hpp"
45
46 PaddedEnd<PSPromotionManager>* PSPromotionManager::_manager_array = nullptr;
47 PSPromotionManager::PSScannerTasksQueueSet* PSPromotionManager::_stack_array_depth = nullptr;
48 PreservedMarksSet* PSPromotionManager::_preserved_marks_set = nullptr;
49 PSOldGen* PSPromotionManager::_old_gen = nullptr;
50 MutableSpace* PSPromotionManager::_young_space = nullptr;
51
52 void PSPromotionManager::initialize() {
53 ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
54
55 _old_gen = heap->old_gen();
56 _young_space = heap->young_gen()->to_space();
57
58 const uint promotion_manager_num = ParallelGCThreads;
59
60 // To prevent false sharing, we pad the PSPromotionManagers
61 // and make sure that the first instance starts at a cache line.
62 assert(_manager_array == nullptr, "Attempt to initialize twice");
63 _manager_array = PaddedArray<PSPromotionManager, mtGC>::create_unfreeable(promotion_manager_num);
64
|
25 #include "precompiled.hpp"
26 #include "classfile/javaClasses.inline.hpp"
27 #include "gc/parallel/mutableSpace.hpp"
28 #include "gc/parallel/parallelScavengeHeap.hpp"
29 #include "gc/parallel/psOldGen.hpp"
30 #include "gc/parallel/psPromotionManager.inline.hpp"
31 #include "gc/parallel/psScavenge.inline.hpp"
32 #include "gc/shared/continuationGCSupport.inline.hpp"
33 #include "gc/shared/gcTrace.hpp"
34 #include "gc/shared/preservedMarks.inline.hpp"
35 #include "gc/shared/taskqueue.inline.hpp"
36 #include "logging/log.hpp"
37 #include "logging/logStream.hpp"
38 #include "memory/allocation.inline.hpp"
39 #include "memory/iterator.inline.hpp"
40 #include "memory/memRegion.hpp"
41 #include "memory/padded.inline.hpp"
42 #include "memory/resourceArea.hpp"
43 #include "oops/access.inline.hpp"
44 #include "oops/compressedOops.inline.hpp"
45 #include "oops/flatArrayKlass.inline.hpp"
46
47 PaddedEnd<PSPromotionManager>* PSPromotionManager::_manager_array = nullptr;
48 PSPromotionManager::PSScannerTasksQueueSet* PSPromotionManager::_stack_array_depth = nullptr;
49 PreservedMarksSet* PSPromotionManager::_preserved_marks_set = nullptr;
50 PSOldGen* PSPromotionManager::_old_gen = nullptr;
51 MutableSpace* PSPromotionManager::_young_space = nullptr;
52
53 void PSPromotionManager::initialize() {
54 ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
55
56 _old_gen = heap->old_gen();
57 _young_space = heap->young_gen()->to_space();
58
59 const uint promotion_manager_num = ParallelGCThreads;
60
61 // To prevent false sharing, we pad the PSPromotionManagers
62 // and make sure that the first instance starts at a cache line.
63 assert(_manager_array == nullptr, "Attempt to initialize twice");
64 _manager_array = PaddedArray<PSPromotionManager, mtGC>::create_unfreeable(promotion_manager_num);
65
|