Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/globals.hpp @ 4970:33df1aeaebbf
Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 27 Feb 2012 13:10:13 +0100 |
parents | f761948a7cd5 cfdfbeac0a5b |
children | 5715abb8e29a |
comparison
equal
deleted
inserted
replaced
4703:2cfb7fb2dce7 | 4970:33df1aeaebbf |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
24 | 24 |
25 #ifndef SHARE_VM_RUNTIME_GLOBALS_HPP | 25 #ifndef SHARE_VM_RUNTIME_GLOBALS_HPP |
26 #define SHARE_VM_RUNTIME_GLOBALS_HPP | 26 #define SHARE_VM_RUNTIME_GLOBALS_HPP |
27 | 27 |
28 #include "utilities/debug.hpp" | 28 #include "utilities/debug.hpp" |
29 | |
30 // use this for flags that are true per default in the tiered build | |
31 // but false in non-tiered builds, and vice versa | |
32 #ifdef TIERED | |
33 #define trueInTiered true | |
34 #define falseInTiered false | |
35 #else | |
36 #define trueInTiered false | |
37 #define falseInTiered true | |
38 #endif | |
39 | |
29 #ifdef TARGET_ARCH_x86 | 40 #ifdef TARGET_ARCH_x86 |
30 # include "globals_x86.hpp" | 41 # include "globals_x86.hpp" |
31 #endif | 42 #endif |
32 #ifdef TARGET_ARCH_sparc | 43 #ifdef TARGET_ARCH_sparc |
33 # include "globals_sparc.hpp" | 44 # include "globals_sparc.hpp" |
243 bool is_writeable() const; | 254 bool is_writeable() const; |
244 bool is_external() const; | 255 bool is_external() const; |
245 | 256 |
246 bool is_unlocker_ext() const; | 257 bool is_unlocker_ext() const; |
247 bool is_unlocked_ext() const; | 258 bool is_unlocked_ext() const; |
259 bool is_writeable_ext() const; | |
260 bool is_external_ext() const; | |
248 | 261 |
249 void print_on(outputStream* st, bool withComments = false ); | 262 void print_on(outputStream* st, bool withComments = false ); |
250 void print_as_flag(outputStream* st); | 263 void print_as_flag(outputStream* st); |
251 }; | 264 }; |
252 | 265 |
322 static bool ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin); | 335 static bool ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin); |
323 static bool ccstrAtPut(char* name, ccstr* value, FlagValueOrigin origin) { return ccstrAtPut(name, strlen(name), value, origin); } | 336 static bool ccstrAtPut(char* name, ccstr* value, FlagValueOrigin origin) { return ccstrAtPut(name, strlen(name), value, origin); } |
324 | 337 |
325 // Returns false if name is not a command line flag. | 338 // Returns false if name is not a command line flag. |
326 static bool wasSetOnCmdline(const char* name, bool* value); | 339 static bool wasSetOnCmdline(const char* name, bool* value); |
327 static void printSetFlags(); | 340 static void printSetFlags(outputStream* out); |
328 | 341 |
329 static void printFlags(bool withComments = false ); | 342 static void printFlags(outputStream* out, bool withComments); |
330 | 343 |
331 static void verify() PRODUCT_RETURN; | 344 static void verify() PRODUCT_RETURN; |
332 }; | 345 }; |
333 | 346 |
334 // use this for flags that are true by default in the debug version but | 347 // use this for flags that are true by default in the debug version but |
347 #define trueInProduct true | 360 #define trueInProduct true |
348 #define falseInProduct false | 361 #define falseInProduct false |
349 #else | 362 #else |
350 #define trueInProduct false | 363 #define trueInProduct false |
351 #define falseInProduct true | 364 #define falseInProduct true |
352 #endif | |
353 | |
354 // use this for flags that are true per default in the tiered build | |
355 // but false in non-tiered builds, and vice versa | |
356 #ifdef TIERED | |
357 #define trueInTiered true | |
358 #define falseInTiered false | |
359 #else | |
360 #define trueInTiered false | |
361 #define falseInTiered true | |
362 #endif | 365 #endif |
363 | 366 |
364 #ifdef JAVASE_EMBEDDED | 367 #ifdef JAVASE_EMBEDDED |
365 #define falseInEmbedded false | 368 #define falseInEmbedded false |
366 #else | 369 #else |
523 "True for register window machines (sparc/ia64)") \ | 526 "True for register window machines (sparc/ia64)") \ |
524 \ | 527 \ |
525 product(intx, UseSSE, 99, \ | 528 product(intx, UseSSE, 99, \ |
526 "Highest supported SSE instructions set on x86/x64") \ | 529 "Highest supported SSE instructions set on x86/x64") \ |
527 \ | 530 \ |
531 product(intx, UseAVX, 99, \ | |
532 "Highest supported AVX instructions set on x86/x64") \ | |
533 \ | |
528 product(intx, UseVIS, 99, \ | 534 product(intx, UseVIS, 99, \ |
529 "Highest supported VIS instructions set on Sparc") \ | 535 "Highest supported VIS instructions set on Sparc") \ |
530 \ | 536 \ |
531 product(uintx, LargePageSizeInBytes, 0, \ | 537 product(uintx, LargePageSizeInBytes, 0, \ |
532 "Large page size (0 to let VM choose the page size") \ | 538 "Large page size (0 to let VM choose the page size") \ |
650 develop(bool, SpecialStringEquals, true, \ | 656 develop(bool, SpecialStringEquals, true, \ |
651 "special version of string equals") \ | 657 "special version of string equals") \ |
652 \ | 658 \ |
653 develop(bool, SpecialArraysEquals, true, \ | 659 develop(bool, SpecialArraysEquals, true, \ |
654 "special version of Arrays.equals(char[],char[])") \ | 660 "special version of Arrays.equals(char[],char[])") \ |
661 \ | |
662 product(bool, CriticalJNINatives, true, \ | |
663 "check for critical JNI entry points") \ | |
664 \ | |
665 notproduct(bool, StressCriticalJNINatives, false, \ | |
666 "Exercise register saving code in critical natives") \ | |
655 \ | 667 \ |
656 product(bool, UseSSE42Intrinsics, false, \ | 668 product(bool, UseSSE42Intrinsics, false, \ |
657 "SSE4.2 versions of intrinsics") \ | 669 "SSE4.2 versions of intrinsics") \ |
658 \ | 670 \ |
659 product(bool, UseCondCardMark, false, \ | 671 product(bool, UseCondCardMark, false, \ |
728 "Trace external suspend wait failures") \ | 740 "Trace external suspend wait failures") \ |
729 \ | 741 \ |
730 product(bool, MaxFDLimit, true, \ | 742 product(bool, MaxFDLimit, true, \ |
731 "Bump the number of file descriptors to max in solaris.") \ | 743 "Bump the number of file descriptors to max in solaris.") \ |
732 \ | 744 \ |
733 notproduct(bool, LogEvents, trueInDebug, \ | 745 diagnostic(bool, LogEvents, true, \ |
734 "Enable Event log") \ | 746 "Enable the various ring buffer event logs") \ |
747 \ | |
748 diagnostic(intx, LogEventsBufferEntries, 10, \ | |
749 "Enable the various ring buffer event logs") \ | |
735 \ | 750 \ |
736 product(bool, BytecodeVerificationRemote, true, \ | 751 product(bool, BytecodeVerificationRemote, true, \ |
737 "Enables the Java bytecode verifier for remote classes") \ | 752 "Enables the Java bytecode verifier for remote classes") \ |
738 \ | 753 \ |
739 product(bool, BytecodeVerificationLocal, false, \ | 754 product(bool, BytecodeVerificationLocal, false, \ |
1037 develop(bool, MemProfiling, false, \ | 1052 develop(bool, MemProfiling, false, \ |
1038 "Write memory usage profiling to log file") \ | 1053 "Write memory usage profiling to log file") \ |
1039 \ | 1054 \ |
1040 notproduct(bool, PrintSystemDictionaryAtExit, false, \ | 1055 notproduct(bool, PrintSystemDictionaryAtExit, false, \ |
1041 "Prints the system dictionary at exit") \ | 1056 "Prints the system dictionary at exit") \ |
1057 \ | |
1058 experimental(intx, PredictedLoadedClassCount, 0, \ | |
1059 "Experimental: Tune loaded class cache starting size.") \ | |
1042 \ | 1060 \ |
1043 diagnostic(bool, UnsyncloadClass, false, \ | 1061 diagnostic(bool, UnsyncloadClass, false, \ |
1044 "Unstable: VM calls loadClass unsynchronized. Custom " \ | 1062 "Unstable: VM calls loadClass unsynchronized. Custom " \ |
1045 "class loader must call VM synchronized for findClass " \ | 1063 "class loader must call VM synchronized for findClass " \ |
1046 "and defineClass.") \ | 1064 "and defineClass.") \ |
1552 "we simulate overflow; a smaller number increases frequency") \ | 1570 "we simulate overflow; a smaller number increases frequency") \ |
1553 \ | 1571 \ |
1554 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \ | 1572 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \ |
1555 "The desired number of objects to claim from the overflow list") \ | 1573 "The desired number of objects to claim from the overflow list") \ |
1556 \ | 1574 \ |
1557 diagnostic(intx, ParGCStridesPerThread, 2, \ | 1575 diagnostic(uintx, ParGCStridesPerThread, 2, \ |
1558 "The number of strides per worker thread that we divide up the " \ | 1576 "The number of strides per worker thread that we divide up the " \ |
1559 "card table scanning work into") \ | 1577 "card table scanning work into") \ |
1560 \ | 1578 \ |
1561 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \ | 1579 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \ |
1562 "The number of cards in each chunk of the parallel chunks used " \ | 1580 "The number of cards in each chunk of the parallel chunks used " \ |
2999 "(0 means none)")) \ | 3017 "(0 means none)")) \ |
3000 \ | 3018 \ |
3001 product(intx, SafepointTimeoutDelay, 10000, \ | 3019 product(intx, SafepointTimeoutDelay, 10000, \ |
3002 "Delay in milliseconds for option SafepointTimeout") \ | 3020 "Delay in milliseconds for option SafepointTimeout") \ |
3003 \ | 3021 \ |
3004 product(intx, NmethodSweepFraction, 4, \ | 3022 product(intx, NmethodSweepFraction, 16, \ |
3005 "Number of invocations of sweeper to cover all nmethods") \ | 3023 "Number of invocations of sweeper to cover all nmethods") \ |
3006 \ | 3024 \ |
3007 product(intx, NmethodSweepCheckInterval, 5, \ | 3025 product(intx, NmethodSweepCheckInterval, 5, \ |
3008 "Compilers wake up every n seconds to possibly sweep nmethods") \ | 3026 "Compilers wake up every n seconds to possibly sweep nmethods") \ |
3009 \ | 3027 \ |
3476 " used with care, as sometimes it can cause performance "\ | 3494 " used with care, as sometimes it can cause performance "\ |
3477 " degradation in the application and/or the entire system. On "\ | 3495 " degradation in the application and/or the entire system. On "\ |
3478 " Linux this policy requires root privilege.") \ | 3496 " Linux this policy requires root privilege.") \ |
3479 \ | 3497 \ |
3480 product(bool, ThreadPriorityVerbose, false, \ | 3498 product(bool, ThreadPriorityVerbose, false, \ |
3481 "print priority changes") \ | 3499 "Print priority changes") \ |
3482 \ | 3500 \ |
3483 product(intx, DefaultThreadPriority, -1, \ | 3501 product(intx, DefaultThreadPriority, -1, \ |
3484 "what native priority threads run at if not specified elsewhere (-1 means no change)") \ | 3502 "The native priority at which threads run if not elsewhere " \ |
3503 "specified (-1 means no change)") \ | |
3485 \ | 3504 \ |
3486 product(intx, CompilerThreadPriority, -1, \ | 3505 product(intx, CompilerThreadPriority, -1, \ |
3487 "what priority should compiler threads run at (-1 means no change)") \ | 3506 "The native priority at which compiler threads should run " \ |
3507 "(-1 means no change)") \ | |
3488 \ | 3508 \ |
3489 product(intx, VMThreadPriority, -1, \ | 3509 product(intx, VMThreadPriority, -1, \ |
3490 "what priority should VM threads run at (-1 means no change)") \ | 3510 "The native priority at which the VM thread should run " \ |
3511 "(-1 means no change)") \ | |
3491 \ | 3512 \ |
3492 product(bool, CompilerThreadHintNoPreempt, true, \ | 3513 product(bool, CompilerThreadHintNoPreempt, true, \ |
3493 "(Solaris only) Give compiler threads an extra quanta") \ | 3514 "(Solaris only) Give compiler threads an extra quanta") \ |
3494 \ | 3515 \ |
3495 product(bool, VMThreadHintNoPreempt, false, \ | 3516 product(bool, VMThreadHintNoPreempt, false, \ |
3504 product(intx, JavaPriority7_To_OSPriority, -1, "Map Java priorities to OS priorities") \ | 3525 product(intx, JavaPriority7_To_OSPriority, -1, "Map Java priorities to OS priorities") \ |
3505 product(intx, JavaPriority8_To_OSPriority, -1, "Map Java priorities to OS priorities") \ | 3526 product(intx, JavaPriority8_To_OSPriority, -1, "Map Java priorities to OS priorities") \ |
3506 product(intx, JavaPriority9_To_OSPriority, -1, "Map Java priorities to OS priorities") \ | 3527 product(intx, JavaPriority9_To_OSPriority, -1, "Map Java priorities to OS priorities") \ |
3507 product(intx, JavaPriority10_To_OSPriority,-1, "Map Java priorities to OS priorities") \ | 3528 product(intx, JavaPriority10_To_OSPriority,-1, "Map Java priorities to OS priorities") \ |
3508 \ | 3529 \ |
3530 experimental(bool, UseCriticalJavaThreadPriority, false, \ | |
3531 "Java thread priority 10 maps to critical scheduling priority") \ | |
3532 \ | |
3533 experimental(bool, UseCriticalCompilerThreadPriority, false, \ | |
3534 "Compiler thread(s) run at critical scheduling priority") \ | |
3535 \ | |
3536 experimental(bool, UseCriticalCMSThreadPriority, false, \ | |
3537 "ConcurrentMarkSweep thread runs at critical scheduling priority")\ | |
3538 \ | |
3509 /* compiler debugging */ \ | 3539 /* compiler debugging */ \ |
3510 notproduct(intx, CompileTheWorldStartAt, 1, \ | 3540 notproduct(intx, CompileTheWorldStartAt, 1, \ |
3511 "First class to consider when using +CompileTheWorld") \ | 3541 "First class to consider when using +CompileTheWorld") \ |
3512 \ | 3542 \ |
3513 notproduct(intx, CompileTheWorldStopAt, max_jint, \ | 3543 notproduct(intx, CompileTheWorldStopAt, max_jint, \ |
3573 \ | 3603 \ |
3574 product(intx, Tier3CompileThreshold, 2000, \ | 3604 product(intx, Tier3CompileThreshold, 2000, \ |
3575 "Threshold at which tier 3 compilation is invoked (invocation " \ | 3605 "Threshold at which tier 3 compilation is invoked (invocation " \ |
3576 "minimum must be satisfied.") \ | 3606 "minimum must be satisfied.") \ |
3577 \ | 3607 \ |
3578 product(intx, Tier3BackEdgeThreshold, 7000, \ | 3608 product(intx, Tier3BackEdgeThreshold, 60000, \ |
3579 "Back edge threshold at which tier 3 OSR compilation is invoked") \ | 3609 "Back edge threshold at which tier 3 OSR compilation is invoked") \ |
3580 \ | 3610 \ |
3581 product(intx, Tier4InvocationThreshold, 5000, \ | 3611 product(intx, Tier4InvocationThreshold, 5000, \ |
3582 "Compile if number of method invocations crosses this " \ | 3612 "Compile if number of method invocations crosses this " \ |
3583 "threshold") \ | 3613 "threshold") \ |
3825 "when constructing method handles, try to improve them") \ | 3855 "when constructing method handles, try to improve them") \ |
3826 \ | 3856 \ |
3827 develop(bool, StressMethodHandleWalk, false, \ | 3857 develop(bool, StressMethodHandleWalk, false, \ |
3828 "Process all method handles with MethodHandleWalk") \ | 3858 "Process all method handles with MethodHandleWalk") \ |
3829 \ | 3859 \ |
3830 diagnostic(bool, UseRicochetFrames, true, \ | |
3831 "use ricochet stack frames for method handle combination, " \ | |
3832 "if the platform supports them") \ | |
3833 \ | |
3834 experimental(bool, TrustFinalNonStaticFields, false, \ | 3860 experimental(bool, TrustFinalNonStaticFields, false, \ |
3835 "trust final non-static declarations for constant folding") \ | 3861 "trust final non-static declarations for constant folding") \ |
3836 \ | 3862 \ |
3837 experimental(bool, AllowInvokeGeneric, false, \ | 3863 experimental(bool, AllowInvokeGeneric, false, \ |
3838 "accept MethodHandle.invoke and MethodHandle.invokeGeneric " \ | 3864 "accept MethodHandle.invoke and MethodHandle.invokeGeneric " \ |
3874 "Number of buckets in the interned String table") \ | 3900 "Number of buckets in the interned String table") \ |
3875 \ | 3901 \ |
3876 product(bool, UseVMInterruptibleIO, false, \ | 3902 product(bool, UseVMInterruptibleIO, false, \ |
3877 "(Unstable, Solaris-specific) Thread interrupt before or with " \ | 3903 "(Unstable, Solaris-specific) Thread interrupt before or with " \ |
3878 "EINTR for I/O operations results in OS_INTRPT. The default value"\ | 3904 "EINTR for I/O operations results in OS_INTRPT. The default value"\ |
3879 " of this flag is true for JDK 6 and earliers") | 3905 " of this flag is true for JDK 6 and earlier") |
3880 | 3906 |
3881 /* | 3907 /* |
3882 * Macros for factoring of globals | 3908 * Macros for factoring of globals |
3883 */ | 3909 */ |
3884 | 3910 |