17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
27 #include "gc_implementation/parallelScavenge/psOldGen.hpp"
28 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
29 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
30 #include "gc_implementation/shared/gcTrace.hpp"
31 #include "gc_implementation/shared/mutableSpace.hpp"
32 #include "memory/allocation.inline.hpp"
33 #include "memory/memRegion.hpp"
34 #include "memory/padded.inline.hpp"
35 #include "oops/oop.inline.hpp"
36 #include "oops/oop.psgc.inline.hpp"
37
38 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
39
40 PaddedEnd<PSPromotionManager>* PSPromotionManager::_manager_array = NULL;
41 OopStarTaskQueueSet* PSPromotionManager::_stack_array_depth = NULL;
42 PSOldGen* PSPromotionManager::_old_gen = NULL;
43 MutableSpace* PSPromotionManager::_young_space = NULL;
44
45 void PSPromotionManager::initialize() {
46 ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
47 assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
48
49 _old_gen = heap->old_gen();
50 _young_space = heap->young_gen()->to_space();
51
52 // To prevent false sharing, we pad the PSPromotionManagers
53 // and make sure that the first instance starts at a cache line.
54 assert(_manager_array == NULL, "Attempt to initialize twice");
55 _manager_array = PaddedArray<PSPromotionManager, mtGC>::create_unfreeable(ParallelGCThreads + 1);
56 guarantee(_manager_array != NULL, "Could not initialize promotion manager");
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
27 #include "gc_implementation/parallelScavenge/psOldGen.hpp"
28 #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
29 #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
30 #include "gc_implementation/shared/gcTrace.hpp"
31 #include "gc_implementation/shared/mutableSpace.hpp"
32 #include "memory/allocation.inline.hpp"
33 #include "memory/memRegion.hpp"
34 #include "memory/padded.inline.hpp"
35 #include "oops/oop.inline.hpp"
36 #include "oops/oop.psgc.inline.hpp"
37 #include "utilities/stack.inline.hpp"
38
39 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
40
41 PaddedEnd<PSPromotionManager>* PSPromotionManager::_manager_array = NULL;
42 OopStarTaskQueueSet* PSPromotionManager::_stack_array_depth = NULL;
43 PSOldGen* PSPromotionManager::_old_gen = NULL;
44 MutableSpace* PSPromotionManager::_young_space = NULL;
45
46 void PSPromotionManager::initialize() {
47 ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap();
48 assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
49
50 _old_gen = heap->old_gen();
51 _young_space = heap->young_gen()->to_space();
52
53 // To prevent false sharing, we pad the PSPromotionManagers
54 // and make sure that the first instance starts at a cache line.
55 assert(_manager_array == NULL, "Attempt to initialize twice");
56 _manager_array = PaddedArray<PSPromotionManager, mtGC>::create_unfreeable(ParallelGCThreads + 1);
57 guarantee(_manager_array != NULL, "Could not initialize promotion manager");
|