31 #include "classfile/systemDictionary.hpp"
32 #include "classfile/vmSymbols.hpp"
33 #include "code/codeCache.hpp"
34 #include "code/dependencies.hpp"
35 #include "gc/shared/collectedHeap.inline.hpp"
36 #include "gc/shared/gcArguments.hpp"
37 #include "gc/shared/gcConfig.hpp"
38 #include "gc/shared/gcTraceTime.inline.hpp"
39 #include "interpreter/interpreter.hpp"
40 #include "logging/log.hpp"
41 #include "logging/logStream.hpp"
42 #include "memory/filemap.hpp"
43 #include "memory/metadataFactory.hpp"
44 #include "memory/metaspaceClosure.hpp"
45 #include "memory/metaspaceCounters.hpp"
46 #include "memory/metaspaceShared.hpp"
47 #include "memory/oopFactory.hpp"
48 #include "memory/resourceArea.hpp"
49 #include "memory/universe.hpp"
50 #include "memory/universe.hpp"
51 #include "memory/vtBuffer.hpp"
52 #include "oops/constantPool.hpp"
53 #include "oops/instanceClassLoaderKlass.hpp"
54 #include "oops/instanceKlass.hpp"
55 #include "oops/instanceMirrorKlass.hpp"
56 #include "oops/instanceRefKlass.hpp"
57 #include "oops/objArrayOop.inline.hpp"
58 #include "oops/oop.inline.hpp"
59 #include "oops/typeArrayKlass.hpp"
60 #include "prims/resolvedMethodTable.hpp"
61 #include "runtime/arguments.hpp"
62 #include "runtime/atomic.hpp"
63 #include "runtime/flags/flagSetting.hpp"
64 #include "runtime/flags/jvmFlagConstraintList.hpp"
65 #include "runtime/deoptimization.hpp"
66 #include "runtime/handles.inline.hpp"
67 #include "runtime/init.hpp"
68 #include "runtime/java.hpp"
69 #include "runtime/javaCalls.hpp"
70 #include "runtime/sharedRuntime.hpp"
71 #include "runtime/synchronizer.hpp"
634 jint universe_init() {
635 assert(!Universe::_fully_initialized, "called after initialize_vtables");
636 guarantee(1 << LogHeapWordSize == sizeof(HeapWord),
637 "LogHeapWordSize is incorrect.");
638 guarantee(sizeof(oop) >= sizeof(HeapWord), "HeapWord larger than oop?");
639 guarantee(sizeof(oop) % sizeof(HeapWord) == 0,
640 "oop size is not not a multiple of HeapWord size");
641
642 TraceTime timer("Genesis", TRACETIME_LOG(Info, startuptime));
643
644 JavaClasses::compute_hard_coded_offsets();
645
646 jint status = Universe::initialize_heap();
647 if (status != JNI_OK) {
648 return status;
649 }
650
651 SystemDictionary::initialize_oop_storage();
652
653 Metaspace::global_initialize();
654 VTBuffer::init();
655 // Initialize performance counters for metaspaces
656 MetaspaceCounters::initialize_performance_counters();
657 CompressedClassSpaceCounters::initialize_performance_counters();
658
659 AOTLoader::universe_init();
660
661 // Checks 'AfterMemoryInit' constraints.
662 if (!JVMFlagConstraintList::check_constraints(JVMFlagConstraint::AfterMemoryInit)) {
663 return JNI_EINVAL;
664 }
665
666 // Create memory for metadata. Must be after initializing heap for
667 // DumpSharedSpaces.
668 ClassLoaderData::init_null_class_loader_data();
669
670 // We have a heap so create the Method* caches before
671 // Metaspace::initialize_shared_spaces() tries to populate them.
672 Universe::_finalizer_register_cache = new LatestMethodCache();
673 Universe::_loader_addClass_cache = new LatestMethodCache();
674 Universe::_pd_implies_cache = new LatestMethodCache();
|
31 #include "classfile/systemDictionary.hpp"
32 #include "classfile/vmSymbols.hpp"
33 #include "code/codeCache.hpp"
34 #include "code/dependencies.hpp"
35 #include "gc/shared/collectedHeap.inline.hpp"
36 #include "gc/shared/gcArguments.hpp"
37 #include "gc/shared/gcConfig.hpp"
38 #include "gc/shared/gcTraceTime.inline.hpp"
39 #include "interpreter/interpreter.hpp"
40 #include "logging/log.hpp"
41 #include "logging/logStream.hpp"
42 #include "memory/filemap.hpp"
43 #include "memory/metadataFactory.hpp"
44 #include "memory/metaspaceClosure.hpp"
45 #include "memory/metaspaceCounters.hpp"
46 #include "memory/metaspaceShared.hpp"
47 #include "memory/oopFactory.hpp"
48 #include "memory/resourceArea.hpp"
49 #include "memory/universe.hpp"
50 #include "memory/universe.hpp"
51 #include "oops/constantPool.hpp"
52 #include "oops/instanceClassLoaderKlass.hpp"
53 #include "oops/instanceKlass.hpp"
54 #include "oops/instanceMirrorKlass.hpp"
55 #include "oops/instanceRefKlass.hpp"
56 #include "oops/objArrayOop.inline.hpp"
57 #include "oops/oop.inline.hpp"
58 #include "oops/typeArrayKlass.hpp"
59 #include "prims/resolvedMethodTable.hpp"
60 #include "runtime/arguments.hpp"
61 #include "runtime/atomic.hpp"
62 #include "runtime/flags/flagSetting.hpp"
63 #include "runtime/flags/jvmFlagConstraintList.hpp"
64 #include "runtime/deoptimization.hpp"
65 #include "runtime/handles.inline.hpp"
66 #include "runtime/init.hpp"
67 #include "runtime/java.hpp"
68 #include "runtime/javaCalls.hpp"
69 #include "runtime/sharedRuntime.hpp"
70 #include "runtime/synchronizer.hpp"
633 jint universe_init() {
634 assert(!Universe::_fully_initialized, "called after initialize_vtables");
635 guarantee(1 << LogHeapWordSize == sizeof(HeapWord),
636 "LogHeapWordSize is incorrect.");
637 guarantee(sizeof(oop) >= sizeof(HeapWord), "HeapWord larger than oop?");
638 guarantee(sizeof(oop) % sizeof(HeapWord) == 0,
639 "oop size is not not a multiple of HeapWord size");
640
641 TraceTime timer("Genesis", TRACETIME_LOG(Info, startuptime));
642
643 JavaClasses::compute_hard_coded_offsets();
644
645 jint status = Universe::initialize_heap();
646 if (status != JNI_OK) {
647 return status;
648 }
649
650 SystemDictionary::initialize_oop_storage();
651
652 Metaspace::global_initialize();
653 // Initialize performance counters for metaspaces
654 MetaspaceCounters::initialize_performance_counters();
655 CompressedClassSpaceCounters::initialize_performance_counters();
656
657 AOTLoader::universe_init();
658
659 // Checks 'AfterMemoryInit' constraints.
660 if (!JVMFlagConstraintList::check_constraints(JVMFlagConstraint::AfterMemoryInit)) {
661 return JNI_EINVAL;
662 }
663
664 // Create memory for metadata. Must be after initializing heap for
665 // DumpSharedSpaces.
666 ClassLoaderData::init_null_class_loader_data();
667
668 // We have a heap so create the Method* caches before
669 // Metaspace::initialize_shared_spaces() tries to populate them.
670 Universe::_finalizer_register_cache = new LatestMethodCache();
671 Universe::_loader_addClass_cache = new LatestMethodCache();
672 Universe::_pd_implies_cache = new LatestMethodCache();
|