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