36 #include "jvmtifiles/jvmtiEnv.hpp"
37 #include "memory/gcLocker.inline.hpp"
38 #include "memory/metaspaceShared.hpp"
39 #include "memory/oopFactory.hpp"
40 #include "memory/universe.inline.hpp"
41 #include "oops/instanceKlass.hpp"
42 #include "oops/objArrayOop.hpp"
43 #include "oops/oop.inline.hpp"
44 #include "oops/symbol.hpp"
45 #include "oops/verifyOopClosure.hpp"
46 #include "prims/jvm_misc.hpp"
47 #include "prims/jvmtiExport.hpp"
48 #include "prims/jvmtiThreadState.hpp"
49 #include "prims/privilegedStack.hpp"
50 #include "runtime/arguments.hpp"
51 #include "runtime/atomic.inline.hpp"
52 #include "runtime/biasedLocking.hpp"
53 #include "runtime/deoptimization.hpp"
54 #include "runtime/fprofiler.hpp"
55 #include "runtime/frame.inline.hpp"
56 #include "runtime/init.hpp"
57 #include "runtime/interfaceSupport.hpp"
58 #include "runtime/java.hpp"
59 #include "runtime/javaCalls.hpp"
60 #include "runtime/jniPeriodicChecker.hpp"
61 #include "runtime/memprofiler.hpp"
62 #include "runtime/mutexLocker.hpp"
63 #include "runtime/objectMonitor.hpp"
64 #include "runtime/orderAccess.inline.hpp"
65 #include "runtime/osThread.hpp"
66 #include "runtime/safepoint.hpp"
67 #include "runtime/sharedRuntime.hpp"
68 #include "runtime/statSampler.hpp"
69 #include "runtime/stubRoutines.hpp"
70 #include "runtime/sweeper.hpp"
71 #include "runtime/task.hpp"
72 #include "runtime/thread.inline.hpp"
73 #include "runtime/threadCritical.hpp"
74 #include "runtime/threadLocalStorage.hpp"
75 #include "runtime/vframe.hpp"
3285 os::init();
3286
3287 // Initialize system properties.
3288 Arguments::init_system_properties();
3289
3290 // So that JDK version can be used as a discriminator when parsing arguments
3291 JDK_Version_init();
3292
3293 // Update/Initialize System properties after JDK version number is known
3294 Arguments::init_version_specific_system_properties();
3295
3296 // Parse arguments
3297 jint parse_result = Arguments::parse(args);
3298 if (parse_result != JNI_OK) return parse_result;
3299
3300 os::init_before_ergo();
3301
3302 jint ergo_result = Arguments::apply_ergo();
3303 if (ergo_result != JNI_OK) return ergo_result;
3304
3305 if (PauseAtStartup) {
3306 os::pause();
3307 }
3308
3309 HOTSPOT_VM_INIT_BEGIN();
3310
3311 // Record VM creation timing statistics
3312 TraceVmCreationTime create_vm_timer;
3313 create_vm_timer.start();
3314
3315 // Timing (must come after argument parsing)
3316 TraceTime timer("Create VM", TraceStartupTime);
3317
3318 // Initialize the os module after parsing the args
3319 jint os_init_2_result = os::init_2();
3320 if (os_init_2_result != JNI_OK) return os_init_2_result;
3321
3322 jint adjust_after_os_result = Arguments::adjust_after_os();
3323 if (adjust_after_os_result != JNI_OK) return adjust_after_os_result;
3324
|
36 #include "jvmtifiles/jvmtiEnv.hpp"
37 #include "memory/gcLocker.inline.hpp"
38 #include "memory/metaspaceShared.hpp"
39 #include "memory/oopFactory.hpp"
40 #include "memory/universe.inline.hpp"
41 #include "oops/instanceKlass.hpp"
42 #include "oops/objArrayOop.hpp"
43 #include "oops/oop.inline.hpp"
44 #include "oops/symbol.hpp"
45 #include "oops/verifyOopClosure.hpp"
46 #include "prims/jvm_misc.hpp"
47 #include "prims/jvmtiExport.hpp"
48 #include "prims/jvmtiThreadState.hpp"
49 #include "prims/privilegedStack.hpp"
50 #include "runtime/arguments.hpp"
51 #include "runtime/atomic.inline.hpp"
52 #include "runtime/biasedLocking.hpp"
53 #include "runtime/deoptimization.hpp"
54 #include "runtime/fprofiler.hpp"
55 #include "runtime/frame.inline.hpp"
56 #include "runtime/globals.hpp"
57 #include "runtime/init.hpp"
58 #include "runtime/interfaceSupport.hpp"
59 #include "runtime/java.hpp"
60 #include "runtime/javaCalls.hpp"
61 #include "runtime/jniPeriodicChecker.hpp"
62 #include "runtime/memprofiler.hpp"
63 #include "runtime/mutexLocker.hpp"
64 #include "runtime/objectMonitor.hpp"
65 #include "runtime/orderAccess.inline.hpp"
66 #include "runtime/osThread.hpp"
67 #include "runtime/safepoint.hpp"
68 #include "runtime/sharedRuntime.hpp"
69 #include "runtime/statSampler.hpp"
70 #include "runtime/stubRoutines.hpp"
71 #include "runtime/sweeper.hpp"
72 #include "runtime/task.hpp"
73 #include "runtime/thread.inline.hpp"
74 #include "runtime/threadCritical.hpp"
75 #include "runtime/threadLocalStorage.hpp"
76 #include "runtime/vframe.hpp"
3286 os::init();
3287
3288 // Initialize system properties.
3289 Arguments::init_system_properties();
3290
3291 // So that JDK version can be used as a discriminator when parsing arguments
3292 JDK_Version_init();
3293
3294 // Update/Initialize System properties after JDK version number is known
3295 Arguments::init_version_specific_system_properties();
3296
3297 // Parse arguments
3298 jint parse_result = Arguments::parse(args);
3299 if (parse_result != JNI_OK) return parse_result;
3300
3301 os::init_before_ergo();
3302
3303 jint ergo_result = Arguments::apply_ergo();
3304 if (ergo_result != JNI_OK) return ergo_result;
3305
3306 // Final check of all arguments after ergonomics which may change values.
3307 if (!CommandLineFlags::check_all_ranges_and_constraints()) {
3308 return JNI_EINVAL;
3309 }
3310
3311 if (PauseAtStartup) {
3312 os::pause();
3313 }
3314
3315 HOTSPOT_VM_INIT_BEGIN();
3316
3317 // Record VM creation timing statistics
3318 TraceVmCreationTime create_vm_timer;
3319 create_vm_timer.start();
3320
3321 // Timing (must come after argument parsing)
3322 TraceTime timer("Create VM", TraceStartupTime);
3323
3324 // Initialize the os module after parsing the args
3325 jint os_init_2_result = os::init_2();
3326 if (os_init_2_result != JNI_OK) return os_init_2_result;
3327
3328 jint adjust_after_os_result = Arguments::adjust_after_os();
3329 if (adjust_after_os_result != JNI_OK) return adjust_after_os_result;
3330
|