hotspot/src/share/vm/runtime/globals.hpp
author coleenp
Wed, 20 Mar 2013 08:04:54 -0400
changeset 16430 882cddc35bec
parent 16428 1b55a8d558b8
child 16437 00f4ce9059f4
permissions -rw-r--r--
8008217: CDS: Class data sharing limits the malloc heap on Solaris Summary: In 64bit VM move CDS archive address to 32G on all platforms using new flag SharedBaseAddress. In 32bit VM set CDS archive address to 3Gb on Linux and let other OSs pick the address. Reviewed-by: kvn, dcubed, zgu, hseigel
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
/*
15604
0209977cd9c4 7052429: G1: Avoid unnecessary scanning of humongous regions during concurrent marking
johnc
parents: 15221
diff changeset
     2
 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     4
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
489c9b5090e2 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
489c9b5090e2 Initial load
duke
parents:
diff changeset
     7
 * published by the Free Software Foundation.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     8
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
489c9b5090e2 Initial load
duke
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
489c9b5090e2 Initial load
duke
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    13
 * accompanied this code).
489c9b5090e2 Initial load
duke
parents:
diff changeset
    14
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
489c9b5090e2 Initial load
duke
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    18
 *
5547
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 5539
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 5539
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 5539
diff changeset
    21
 * questions.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    22
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    23
 */
489c9b5090e2 Initial load
duke
parents:
diff changeset
    24
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    25
#ifndef SHARE_VM_RUNTIME_GLOBALS_HPP
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    26
#define SHARE_VM_RUNTIME_GLOBALS_HPP
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    27
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    28
#include "utilities/debug.hpp"
11632
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    29
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    30
// use this for flags that are true per default in the tiered build
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    31
// but false in non-tiered builds, and vice versa
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    32
#ifdef TIERED
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    33
#define  trueInTiered true
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    34
#define falseInTiered false
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    35
#else
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    36
#define  trueInTiered false
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    37
#define falseInTiered true
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    38
#endif
e369165faf7a 7141059: 7116795 broke pure c2 builds
iveresov
parents: 11566
diff changeset
    39
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    40
#ifdef TARGET_ARCH_x86
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    41
# include "globals_x86.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    42
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    43
#ifdef TARGET_ARCH_sparc
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    44
# include "globals_sparc.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    45
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    46
#ifdef TARGET_ARCH_zero
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    47
# include "globals_zero.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    48
#endif
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    49
#ifdef TARGET_ARCH_arm
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    50
# include "globals_arm.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    51
#endif
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    52
#ifdef TARGET_ARCH_ppc
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    53
# include "globals_ppc.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    54
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    55
#ifdef TARGET_OS_FAMILY_linux
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    56
# include "globals_linux.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    57
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    58
#ifdef TARGET_OS_FAMILY_solaris
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    59
# include "globals_solaris.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    60
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    61
#ifdef TARGET_OS_FAMILY_windows
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    62
# include "globals_windows.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    63
#endif
10565
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    64
#ifdef TARGET_OS_FAMILY_bsd
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    65
# include "globals_bsd.hpp"
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    66
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    67
#ifdef TARGET_OS_ARCH_linux_x86
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    68
# include "globals_linux_x86.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    69
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    70
#ifdef TARGET_OS_ARCH_linux_sparc
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    71
# include "globals_linux_sparc.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    72
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    73
#ifdef TARGET_OS_ARCH_linux_zero
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    74
# include "globals_linux_zero.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    75
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    76
#ifdef TARGET_OS_ARCH_solaris_x86
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    77
# include "globals_solaris_x86.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    78
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    79
#ifdef TARGET_OS_ARCH_solaris_sparc
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    80
# include "globals_solaris_sparc.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    81
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    82
#ifdef TARGET_OS_ARCH_windows_x86
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    83
# include "globals_windows_x86.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    84
#endif
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    85
#ifdef TARGET_OS_ARCH_linux_arm
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    86
# include "globals_linux_arm.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    87
#endif
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    88
#ifdef TARGET_OS_ARCH_linux_ppc
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    89
# include "globals_linux_ppc.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
    90
#endif
10565
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    91
#ifdef TARGET_OS_ARCH_bsd_x86
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    92
# include "globals_bsd_x86.hpp"
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    93
#endif
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    94
#ifdef TARGET_OS_ARCH_bsd_zero
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    95
# include "globals_bsd_zero.hpp"
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
    96
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    97
#ifdef COMPILER1
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    98
#ifdef TARGET_ARCH_x86
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
    99
# include "c1_globals_x86.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   100
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   101
#ifdef TARGET_ARCH_sparc
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   102
# include "c1_globals_sparc.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   103
#endif
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   104
#ifdef TARGET_ARCH_arm
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   105
# include "c1_globals_arm.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   106
#endif
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   107
#ifdef TARGET_ARCH_ppc
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   108
# include "c1_globals_ppc.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   109
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   110
#ifdef TARGET_OS_FAMILY_linux
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   111
# include "c1_globals_linux.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   112
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   113
#ifdef TARGET_OS_FAMILY_solaris
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   114
# include "c1_globals_solaris.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   115
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   116
#ifdef TARGET_OS_FAMILY_windows
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   117
# include "c1_globals_windows.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   118
#endif
10565
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
   119
#ifdef TARGET_OS_FAMILY_bsd
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
   120
# include "c1_globals_bsd.hpp"
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
   121
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   122
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   123
#ifdef COMPILER2
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   124
#ifdef TARGET_ARCH_x86
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   125
# include "c2_globals_x86.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   126
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   127
#ifdef TARGET_ARCH_sparc
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   128
# include "c2_globals_sparc.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   129
#endif
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   130
#ifdef TARGET_ARCH_arm
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   131
# include "c2_globals_arm.hpp"
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   132
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   133
#ifdef TARGET_OS_FAMILY_linux
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   134
# include "c2_globals_linux.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   135
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   136
#ifdef TARGET_OS_FAMILY_solaris
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   137
# include "c2_globals_solaris.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   138
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   139
#ifdef TARGET_OS_FAMILY_windows
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   140
# include "c2_globals_windows.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   141
#endif
10565
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
   142
#ifdef TARGET_OS_FAMILY_bsd
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
   143
# include "c2_globals_bsd.hpp"
dc90c239f4ec 7089790: integrate bsd-port changes
never
parents: 10519
diff changeset
   144
#endif
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   145
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   146
#ifdef SHARK
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   147
#ifdef TARGET_ARCH_zero
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   148
# include "shark_globals_zero.hpp"
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   149
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   150
#endif
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
   151
6187
4fa7845f7c14 6976186: integrate Shark HotSpot changes
twisti
parents: 6184
diff changeset
   152
#if !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   153
define_pd_global(bool, BackgroundCompilation,        false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   154
define_pd_global(bool, UseTLAB,                      false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   155
define_pd_global(bool, CICompileOSR,                 false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   156
define_pd_global(bool, UseTypeProfile,               false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   157
define_pd_global(bool, UseOnStackReplacement,        false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   158
define_pd_global(bool, InlineIntrinsics,             false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   159
define_pd_global(bool, PreferInterpreterNativeStubs, true);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   160
define_pd_global(bool, ProfileInterpreter,           false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   161
define_pd_global(bool, ProfileTraps,                 false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   162
define_pd_global(bool, TieredCompilation,            false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   163
489c9b5090e2 Initial load
duke
parents:
diff changeset
   164
define_pd_global(intx, CompileThreshold,             0);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   165
define_pd_global(intx, BackEdgeThreshold,            0);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   166
489c9b5090e2 Initial load
duke
parents:
diff changeset
   167
define_pd_global(intx, OnStackReplacePercentage,     0);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   168
define_pd_global(bool, ResizeTLAB,                   false);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   169
define_pd_global(intx, FreqInlineSize,               0);
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   170
define_pd_global(intx, InlineSmallCode,              0);
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   171
define_pd_global(intx, NewSizeThreadIncrease,        4*K);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   172
define_pd_global(intx, InlineClassNatives,           true);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   173
define_pd_global(intx, InlineUnsafeOps,              true);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   174
define_pd_global(intx, InitialCodeCacheSize,         160*K);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   175
define_pd_global(intx, ReservedCodeCacheSize,        32*M);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   176
define_pd_global(intx, CodeCacheExpansionSize,       32*K);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   177
define_pd_global(intx, CodeCacheMinBlockLength,      1);
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
   178
define_pd_global(uintx,MetaspaceSize,    ScaleForWordSize(4*M));
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   179
define_pd_global(bool, NeverActAsServerClassMachine, true);
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   180
define_pd_global(uint64_t,MaxRAM,                    1ULL*G);
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   181
#define CI_COMPILER_COUNT 0
489c9b5090e2 Initial load
duke
parents:
diff changeset
   182
#else
489c9b5090e2 Initial load
duke
parents:
diff changeset
   183
489c9b5090e2 Initial load
duke
parents:
diff changeset
   184
#ifdef COMPILER2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   185
#define CI_COMPILER_COUNT 2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   186
#else
489c9b5090e2 Initial load
duke
parents:
diff changeset
   187
#define CI_COMPILER_COUNT 1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   188
#endif // COMPILER2
489c9b5090e2 Initial load
duke
parents:
diff changeset
   189
489c9b5090e2 Initial load
duke
parents:
diff changeset
   190
#endif // no compilers
489c9b5090e2 Initial load
duke
parents:
diff changeset
   191
489c9b5090e2 Initial load
duke
parents:
diff changeset
   192
// string type aliases used only in this file
489c9b5090e2 Initial load
duke
parents:
diff changeset
   193
typedef const char* ccstr;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   194
typedef const char* ccstrlist;   // represents string arguments which accumulate
489c9b5090e2 Initial load
duke
parents:
diff changeset
   195
489c9b5090e2 Initial load
duke
parents:
diff changeset
   196
enum FlagValueOrigin {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   197
  DEFAULT          = 0,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   198
  COMMAND_LINE     = 1,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   199
  ENVIRON_VAR      = 2,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   200
  CONFIG_FILE      = 3,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   201
  MANAGEMENT       = 4,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   202
  ERGONOMIC        = 5,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   203
  ATTACH_ON_DEMAND = 6,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   204
  INTERNAL         = 99
489c9b5090e2 Initial load
duke
parents:
diff changeset
   205
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   206
489c9b5090e2 Initial load
duke
parents:
diff changeset
   207
struct Flag {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   208
  const char *type;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   209
  const char *name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   210
  void*       addr;
6438
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
   211
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
   212
  NOT_PRODUCT(const char *doc;)
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
   213
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   214
  const char *kind;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   215
  FlagValueOrigin origin;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   216
489c9b5090e2 Initial load
duke
parents:
diff changeset
   217
  // points to all Flags static array
489c9b5090e2 Initial load
duke
parents:
diff changeset
   218
  static Flag *flags;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   219
489c9b5090e2 Initial load
duke
parents:
diff changeset
   220
  // number of flags
489c9b5090e2 Initial load
duke
parents:
diff changeset
   221
  static size_t numFlags;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   222
12157
439a7166bf0f 7144328: Improper commandlines for -XX:+-UnlockCommercialFeatures require proper warning/error messages
jmelvin
parents: 12095
diff changeset
   223
  static Flag* find_flag(char* name, size_t length, bool allow_locked = false);
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   224
489c9b5090e2 Initial load
duke
parents:
diff changeset
   225
  bool is_bool() const        { return strcmp(type, "bool") == 0; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   226
  bool get_bool() const       { return *((bool*) addr); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   227
  void set_bool(bool value)   { *((bool*) addr) = value; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   228
489c9b5090e2 Initial load
duke
parents:
diff changeset
   229
  bool is_intx()  const       { return strcmp(type, "intx")  == 0; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   230
  intx get_intx() const       { return *((intx*) addr); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   231
  void set_intx(intx value)   { *((intx*) addr) = value; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   232
489c9b5090e2 Initial load
duke
parents:
diff changeset
   233
  bool is_uintx() const       { return strcmp(type, "uintx") == 0; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   234
  uintx get_uintx() const     { return *((uintx*) addr); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   235
  void set_uintx(uintx value) { *((uintx*) addr) = value; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   236
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   237
  bool is_uint64_t() const          { return strcmp(type, "uint64_t") == 0; }
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   238
  uint64_t get_uint64_t() const     { return *((uint64_t*) addr); }
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   239
  void set_uint64_t(uint64_t value) { *((uint64_t*) addr) = value; }
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   240
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   241
  bool is_double() const        { return strcmp(type, "double") == 0; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   242
  double get_double() const     { return *((double*) addr); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   243
  void set_double(double value) { *((double*) addr) = value; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   244
489c9b5090e2 Initial load
duke
parents:
diff changeset
   245
  bool is_ccstr() const          { return strcmp(type, "ccstr") == 0 || strcmp(type, "ccstrlist") == 0; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   246
  bool ccstr_accumulates() const { return strcmp(type, "ccstrlist") == 0; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   247
  ccstr get_ccstr() const     { return *((ccstr*) addr); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   248
  void set_ccstr(ccstr value) { *((ccstr*) addr) = value; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   249
489c9b5090e2 Initial load
duke
parents:
diff changeset
   250
  bool is_unlocker() const;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   251
  bool is_unlocked() const;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   252
  bool is_writeable() const;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   253
  bool is_external() const;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   254
11183
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
   255
  bool is_unlocker_ext() const;
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
   256
  bool is_unlocked_ext() const;
11254
e2dd3c32a7cb 7122880: Extend vendor-specific command interface to include manageable switches
phh
parents: 11201
diff changeset
   257
  bool is_writeable_ext() const;
e2dd3c32a7cb 7122880: Extend vendor-specific command interface to include manageable switches
phh
parents: 11201
diff changeset
   258
  bool is_external_ext() const;
11183
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
   259
12157
439a7166bf0f 7144328: Improper commandlines for -XX:+-UnlockCommercialFeatures require proper warning/error messages
jmelvin
parents: 12095
diff changeset
   260
  void get_locked_message(char*, int) const;
439a7166bf0f 7144328: Improper commandlines for -XX:+-UnlockCommercialFeatures require proper warning/error messages
jmelvin
parents: 12095
diff changeset
   261
  void get_locked_message_ext(char*, int) const;
439a7166bf0f 7144328: Improper commandlines for -XX:+-UnlockCommercialFeatures require proper warning/error messages
jmelvin
parents: 12095
diff changeset
   262
6438
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
   263
  void print_on(outputStream* st, bool withComments = false );
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   264
  void print_as_flag(outputStream* st);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   265
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   266
489c9b5090e2 Initial load
duke
parents:
diff changeset
   267
// debug flags control various aspects of the VM and are global accessible
489c9b5090e2 Initial load
duke
parents:
diff changeset
   268
489c9b5090e2 Initial load
duke
parents:
diff changeset
   269
// use FlagSetting to temporarily change some debug flag
489c9b5090e2 Initial load
duke
parents:
diff changeset
   270
// e.g. FlagSetting fs(DebugThisAndThat, true);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   271
// restored to previous value upon leaving scope
489c9b5090e2 Initial load
duke
parents:
diff changeset
   272
class FlagSetting {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   273
  bool val;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   274
  bool* flag;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   275
 public:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   276
  FlagSetting(bool& fl, bool newValue) { flag = &fl; val = fl; fl = newValue; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   277
  ~FlagSetting()                       { *flag = val; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   278
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   279
489c9b5090e2 Initial load
duke
parents:
diff changeset
   280
489c9b5090e2 Initial load
duke
parents:
diff changeset
   281
class CounterSetting {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   282
  intx* counter;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   283
 public:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   284
  CounterSetting(intx* cnt) { counter = cnt; (*counter)++; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   285
  ~CounterSetting()         { (*counter)--; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   286
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   287
489c9b5090e2 Initial load
duke
parents:
diff changeset
   288
489c9b5090e2 Initial load
duke
parents:
diff changeset
   289
class IntFlagSetting {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   290
  intx val;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   291
  intx* flag;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   292
 public:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   293
  IntFlagSetting(intx& fl, intx newValue) { flag = &fl; val = fl; fl = newValue; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   294
  ~IntFlagSetting()                       { *flag = val; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   295
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   296
489c9b5090e2 Initial load
duke
parents:
diff changeset
   297
489c9b5090e2 Initial load
duke
parents:
diff changeset
   298
class DoubleFlagSetting {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   299
  double val;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   300
  double* flag;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   301
 public:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   302
  DoubleFlagSetting(double& fl, double newValue) { flag = &fl; val = fl; fl = newValue; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   303
  ~DoubleFlagSetting()                           { *flag = val; }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   304
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   305
489c9b5090e2 Initial load
duke
parents:
diff changeset
   306
489c9b5090e2 Initial load
duke
parents:
diff changeset
   307
class CommandLineFlags {
489c9b5090e2 Initial load
duke
parents:
diff changeset
   308
 public:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   309
  static bool boolAt(char* name, size_t len, bool* value);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   310
  static bool boolAt(char* name, bool* value)      { return boolAt(name, strlen(name), value); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   311
  static bool boolAtPut(char* name, size_t len, bool* value, FlagValueOrigin origin);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   312
  static bool boolAtPut(char* name, bool* value, FlagValueOrigin origin)   { return boolAtPut(name, strlen(name), value, origin); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   313
489c9b5090e2 Initial load
duke
parents:
diff changeset
   314
  static bool intxAt(char* name, size_t len, intx* value);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   315
  static bool intxAt(char* name, intx* value)      { return intxAt(name, strlen(name), value); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   316
  static bool intxAtPut(char* name, size_t len, intx* value, FlagValueOrigin origin);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   317
  static bool intxAtPut(char* name, intx* value, FlagValueOrigin origin)   { return intxAtPut(name, strlen(name), value, origin); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   318
489c9b5090e2 Initial load
duke
parents:
diff changeset
   319
  static bool uintxAt(char* name, size_t len, uintx* value);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   320
  static bool uintxAt(char* name, uintx* value)    { return uintxAt(name, strlen(name), value); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   321
  static bool uintxAtPut(char* name, size_t len, uintx* value, FlagValueOrigin origin);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   322
  static bool uintxAtPut(char* name, uintx* value, FlagValueOrigin origin) { return uintxAtPut(name, strlen(name), value, origin); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   323
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   324
  static bool uint64_tAt(char* name, size_t len, uint64_t* value);
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   325
  static bool uint64_tAt(char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); }
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   326
  static bool uint64_tAtPut(char* name, size_t len, uint64_t* value, FlagValueOrigin origin);
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   327
  static bool uint64_tAtPut(char* name, uint64_t* value, FlagValueOrigin origin) { return uint64_tAtPut(name, strlen(name), value, origin); }
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   328
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   329
  static bool doubleAt(char* name, size_t len, double* value);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   330
  static bool doubleAt(char* name, double* value)    { return doubleAt(name, strlen(name), value); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   331
  static bool doubleAtPut(char* name, size_t len, double* value, FlagValueOrigin origin);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   332
  static bool doubleAtPut(char* name, double* value, FlagValueOrigin origin) { return doubleAtPut(name, strlen(name), value, origin); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   333
489c9b5090e2 Initial load
duke
parents:
diff changeset
   334
  static bool ccstrAt(char* name, size_t len, ccstr* value);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   335
  static bool ccstrAt(char* name, ccstr* value)    { return ccstrAt(name, strlen(name), value); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   336
  static bool ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin);
489c9b5090e2 Initial load
duke
parents:
diff changeset
   337
  static bool ccstrAtPut(char* name, ccstr* value, FlagValueOrigin origin) { return ccstrAtPut(name, strlen(name), value, origin); }
489c9b5090e2 Initial load
duke
parents:
diff changeset
   338
489c9b5090e2 Initial load
duke
parents:
diff changeset
   339
  // Returns false if name is not a command line flag.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   340
  static bool wasSetOnCmdline(const char* name, bool* value);
11441
a89f443814cd 7120511: Add diagnostic commands
fparain
parents: 11254
diff changeset
   341
  static void printSetFlags(outputStream* out);
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   342
11441
a89f443814cd 7120511: Add diagnostic commands
fparain
parents: 11254
diff changeset
   343
  static void printFlags(outputStream* out, bool withComments);
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   344
489c9b5090e2 Initial load
duke
parents:
diff changeset
   345
  static void verify() PRODUCT_RETURN;
489c9b5090e2 Initial load
duke
parents:
diff changeset
   346
};
489c9b5090e2 Initial load
duke
parents:
diff changeset
   347
489c9b5090e2 Initial load
duke
parents:
diff changeset
   348
// use this for flags that are true by default in the debug version but
489c9b5090e2 Initial load
duke
parents:
diff changeset
   349
// false in the optimized version, and vice versa
489c9b5090e2 Initial load
duke
parents:
diff changeset
   350
#ifdef ASSERT
489c9b5090e2 Initial load
duke
parents:
diff changeset
   351
#define trueInDebug  true
489c9b5090e2 Initial load
duke
parents:
diff changeset
   352
#define falseInDebug false
489c9b5090e2 Initial load
duke
parents:
diff changeset
   353
#else
489c9b5090e2 Initial load
duke
parents:
diff changeset
   354
#define trueInDebug  false
489c9b5090e2 Initial load
duke
parents:
diff changeset
   355
#define falseInDebug true
489c9b5090e2 Initial load
duke
parents:
diff changeset
   356
#endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   357
489c9b5090e2 Initial load
duke
parents:
diff changeset
   358
// use this for flags that are true per default in the product build
489c9b5090e2 Initial load
duke
parents:
diff changeset
   359
// but false in development builds, and vice versa
489c9b5090e2 Initial load
duke
parents:
diff changeset
   360
#ifdef PRODUCT
489c9b5090e2 Initial load
duke
parents:
diff changeset
   361
#define trueInProduct  true
489c9b5090e2 Initial load
duke
parents:
diff changeset
   362
#define falseInProduct false
489c9b5090e2 Initial load
duke
parents:
diff changeset
   363
#else
489c9b5090e2 Initial load
duke
parents:
diff changeset
   364
#define trueInProduct  false
489c9b5090e2 Initial load
duke
parents:
diff changeset
   365
#define falseInProduct true
489c9b5090e2 Initial load
duke
parents:
diff changeset
   366
#endif
489c9b5090e2 Initial load
duke
parents:
diff changeset
   367
10020
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
   368
#ifdef JAVASE_EMBEDDED
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
   369
#define falseInEmbedded false
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
   370
#else
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
   371
#define falseInEmbedded true
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
   372
#endif
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
   373
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   374
// develop flags are settable / visible only during development and are constant in the PRODUCT version
489c9b5090e2 Initial load
duke
parents:
diff changeset
   375
// product flags are always settable / visible
489c9b5090e2 Initial load
duke
parents:
diff changeset
   376
// notproduct flags are settable / visible only during development and are not declared in the PRODUCT version
489c9b5090e2 Initial load
duke
parents:
diff changeset
   377
489c9b5090e2 Initial load
duke
parents:
diff changeset
   378
// A flag must be declared with one of the following types:
489c9b5090e2 Initial load
duke
parents:
diff changeset
   379
// bool, intx, uintx, ccstr.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   380
// The type "ccstr" is an alias for "const char*" and is used
489c9b5090e2 Initial load
duke
parents:
diff changeset
   381
// only in this file, because the macrology requires single-token type names.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   382
489c9b5090e2 Initial load
duke
parents:
diff changeset
   383
// Note: Diagnostic options not meant for VM tuning or for product modes.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   384
// They are to be used for VM quality assurance or field diagnosis
489c9b5090e2 Initial load
duke
parents:
diff changeset
   385
// of VM bugs.  They are hidden so that users will not be encouraged to
489c9b5090e2 Initial load
duke
parents:
diff changeset
   386
// try them as if they were VM ordinary execution options.  However, they
489c9b5090e2 Initial load
duke
parents:
diff changeset
   387
// are available in the product version of the VM.  Under instruction
489c9b5090e2 Initial load
duke
parents:
diff changeset
   388
// from support engineers, VM customers can turn them on to collect
489c9b5090e2 Initial load
duke
parents:
diff changeset
   389
// diagnostic information about VM problems.  To use a VM diagnostic
489c9b5090e2 Initial load
duke
parents:
diff changeset
   390
// option, you must first specify +UnlockDiagnosticVMOptions.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   391
// (This master switch also affects the behavior of -Xprintflags.)
1382
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   392
//
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   393
// experimental flags are in support of features that are not
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   394
//    part of the officially supported product, but are available
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   395
//    for experimenting with. They could, for example, be performance
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   396
//    features that may not have undergone full or rigorous QA, but which may
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   397
//    help performance in some cases and released for experimentation
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   398
//    by the community of users and developers. This flag also allows one to
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   399
//    be able to build a fully supported product that nonetheless also
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   400
//    ships with some unsupported, lightly tested, experimental features.
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   401
//    Like the UnlockDiagnosticVMOptions flag above, there is a corresponding
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   402
//    UnlockExperimentalVMOptions flag, which allows the control and
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   403
//    modification of the experimental flags.
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   404
//
6763
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
   405
// Nota bene: neither diagnostic nor experimental options should be used casually,
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
   406
//    and they are not supported on production loads, except under explicit
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
   407
//    direction from support engineers.
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
   408
//
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   409
// manageable flags are writeable external product flags.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   410
//    They are dynamically writeable through the JDK management interface
489c9b5090e2 Initial load
duke
parents:
diff changeset
   411
//    (com.sun.management.HotSpotDiagnosticMXBean API) and also through JConsole.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   412
//    These flags are external exported interface (see CCC).  The list of
489c9b5090e2 Initial load
duke
parents:
diff changeset
   413
//    manageable flags can be queried programmatically through the management
489c9b5090e2 Initial load
duke
parents:
diff changeset
   414
//    interface.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   415
//
489c9b5090e2 Initial load
duke
parents:
diff changeset
   416
//    A flag can be made as "manageable" only if
489c9b5090e2 Initial load
duke
parents:
diff changeset
   417
//    - the flag is defined in a CCC as an external exported interface.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   418
//    - the VM implementation supports dynamic setting of the flag.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   419
//      This implies that the VM must *always* query the flag variable
489c9b5090e2 Initial load
duke
parents:
diff changeset
   420
//      and not reuse state related to the flag state at any given time.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   421
//    - you want the flag to be queried programmatically by the customers.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   422
//
489c9b5090e2 Initial load
duke
parents:
diff changeset
   423
// product_rw flags are writeable internal product flags.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   424
//    They are like "manageable" flags but for internal/private use.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   425
//    The list of product_rw flags are internal/private flags which
489c9b5090e2 Initial load
duke
parents:
diff changeset
   426
//    may be changed/removed in a future release.  It can be set
489c9b5090e2 Initial load
duke
parents:
diff changeset
   427
//    through the management interface to get/set value
489c9b5090e2 Initial load
duke
parents:
diff changeset
   428
//    when the name of flag is supplied.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   429
//
489c9b5090e2 Initial load
duke
parents:
diff changeset
   430
//    A flag can be made as "product_rw" only if
489c9b5090e2 Initial load
duke
parents:
diff changeset
   431
//    - the VM implementation supports dynamic setting of the flag.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   432
//      This implies that the VM must *always* query the flag variable
489c9b5090e2 Initial load
duke
parents:
diff changeset
   433
//      and not reuse state related to the flag state at any given time.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   434
//
489c9b5090e2 Initial load
duke
parents:
diff changeset
   435
// Note that when there is a need to support develop flags to be writeable,
489c9b5090e2 Initial load
duke
parents:
diff changeset
   436
// it can be done in the same way as product_rw.
489c9b5090e2 Initial load
duke
parents:
diff changeset
   437
1382
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   438
#define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \
360
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
   439
                                                                            \
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
   440
  lp64_product(bool, UseCompressedOops, false,                              \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
   441
            "Use 32-bit object references in 64-bit VM  "                   \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
   442
            "lp64_product means flag is always constant in 32 bit VM")      \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
   443
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
   444
  lp64_product(bool, UseCompressedKlassPointers, false,                     \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
   445
            "Use 32-bit klass pointers in 64-bit VM  "                      \
360
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
   446
            "lp64_product means flag is always constant in 32 bit VM")      \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   447
                                                                            \
2254
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   448
  notproduct(bool, CheckCompressedOops, true,                               \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   449
            "generate checks in encoding/decoding code in debug VM")        \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   450
                                                                            \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   451
  product_pd(uintx, HeapBaseMinAddress,                                     \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   452
            "OS specific low limit for heap base address")                  \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   453
                                                                            \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   454
  diagnostic(bool, PrintCompressedOopsMode, false,                          \
f13dda645a4b 6791178: Specialize for zero as the compressed oop vm heap base
kvn
parents: 2141
diff changeset
   455
            "Print compressed oops base address and encoding mode")         \
1129
ec4dfac10759 6741004: UseLargePages + UseCompressedOops breaks implicit null checking guard page
coleenp
parents: 1062
diff changeset
   456
                                                                            \
5694
1e0532a6abff 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
kvn
parents: 5539
diff changeset
   457
  lp64_product(intx, ObjectAlignmentInBytes, 8,                             \
1e0532a6abff 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
kvn
parents: 5539
diff changeset
   458
          "Default object alignment in bytes, 8 is minimum")                \
1e0532a6abff 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb
kvn
parents: 5539
diff changeset
   459
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   460
  /* UseMembar is theoretically a temp flag used for memory barrier         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   461
   * removal testing.  It was supposed to be removed before FCS but has     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   462
   * been re-added (see 6401008) */                                         \
6965
4ef36b2a6a3a 6989297: Integrate additional portability improvements
bobv
parents: 6466
diff changeset
   463
  product_pd(bool, UseMembar,                                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   464
          "(Unstable) Issues membars on thread state transitions")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   465
                                                                            \
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   466
  /* Temp PPC Flag to allow disabling the use of lwsync on ppc platforms    \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   467
   * that don't support it.  This will be replaced by processor detection   \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   468
   * logic.                                                                 \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   469
   */                                                                       \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   470
  product(bool, UsePPCLWSYNC, true,                                         \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   471
          "Use lwsync instruction if true, else use slower sync")           \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
   472
                                                                            \
10022
377345fb5fb5 7061204: clean the chunk table synchronously in embedded builds
jcoomes
parents: 10020
diff changeset
   473
  develop(bool, CleanChunkPoolAsync, falseInEmbedded,                       \
377345fb5fb5 7061204: clean the chunk table synchronously in embedded builds
jcoomes
parents: 10020
diff changeset
   474
          "Whether to clean the chunk pool asynchronously")                 \
377345fb5fb5 7061204: clean the chunk table synchronously in embedded builds
jcoomes
parents: 10020
diff changeset
   475
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
   476
  /* Temporary: See 6948537 */                                              \
5431
5c4054a50dbb 6948537: CMS: BOT walkers observe out-of-thin-air zeros on sun4v sparc/CMT
ysr
parents: 5403
diff changeset
   477
  experimental(bool, UseMemSetInBOT, true,                                  \
5c4054a50dbb 6948537: CMS: BOT walkers observe out-of-thin-air zeros on sun4v sparc/CMT
ysr
parents: 5403
diff changeset
   478
          "(Unstable) uses memset in BOT updates in GC code")               \
5c4054a50dbb 6948537: CMS: BOT walkers observe out-of-thin-air zeros on sun4v sparc/CMT
ysr
parents: 5403
diff changeset
   479
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   480
  diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug,                  \
1382
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   481
          "Enable normal processing of flags relating to field diagnostics")\
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   482
                                                                            \
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   483
  experimental(bool, UnlockExperimentalVMOptions, false,                    \
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
   484
          "Enable normal processing of flags relating to experimental features")\
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   485
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   486
  product(bool, JavaMonitorsInStackTrace, true,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   487
          "Print info. about Java monitor locks when the stacks are dumped")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
   488
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   489
  product_pd(bool, UseLargePages,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   490
          "Use large page memory")                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   491
                                                                            \
1421
a7ef1a3b2644 6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents: 1409
diff changeset
   492
  product_pd(bool, UseLargePagesIndividualAllocation,                       \
a7ef1a3b2644 6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents: 1409
diff changeset
   493
          "Allocate large pages individually for better affinity")          \
a7ef1a3b2644 6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents: 1409
diff changeset
   494
                                                                            \
a7ef1a3b2644 6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents: 1409
diff changeset
   495
  develop(bool, LargePagesIndividualAllocationInjectError, false,           \
a7ef1a3b2644 6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents: 1409
diff changeset
   496
          "Fail large pages individual allocation")                         \
a7ef1a3b2644 6660681: Incrementally reserve pages on win server 2003 for better large page affinity
jmasa
parents: 1409
diff changeset
   497
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   498
  develop(bool, TracePageSizes, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   499
          "Trace page size selection and usage.")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   500
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   501
  product(bool, UseNUMA, false,                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   502
          "Use NUMA if available")                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   503
                                                                            \
10494
3f347ed8bd3c 7082969: NUMA interleaving
iveresov
parents: 10267
diff changeset
   504
  product(bool, UseNUMAInterleaving, false,                                 \
3f347ed8bd3c 7082969: NUMA interleaving
iveresov
parents: 10267
diff changeset
   505
          "Interleave memory across NUMA nodes if available")               \
3f347ed8bd3c 7082969: NUMA interleaving
iveresov
parents: 10267
diff changeset
   506
                                                                            \
3f347ed8bd3c 7082969: NUMA interleaving
iveresov
parents: 10267
diff changeset
   507
  product(uintx, NUMAInterleaveGranularity, 2*M,                            \
3f347ed8bd3c 7082969: NUMA interleaving
iveresov
parents: 10267
diff changeset
   508
          "Granularity to use for NUMA interleaving on Windows OS")         \
3f347ed8bd3c 7082969: NUMA interleaving
iveresov
parents: 10267
diff changeset
   509
                                                                            \
1615
b46d9f19bde2 6779436: NUMA allocator: libnuma expects certain size of the buffer in numa_node_to_cpus()
iveresov
parents: 1608
diff changeset
   510
  product(bool, ForceNUMA, false,                                           \
b46d9f19bde2 6779436: NUMA allocator: libnuma expects certain size of the buffer in numa_node_to_cpus()
iveresov
parents: 1608
diff changeset
   511
          "Force NUMA optimizations on single-node/UMA systems")            \
b46d9f19bde2 6779436: NUMA allocator: libnuma expects certain size of the buffer in numa_node_to_cpus()
iveresov
parents: 1608
diff changeset
   512
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   513
  product(intx, NUMAChunkResizeWeight, 20,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   514
          "Percentage (0-100) used to weight the current sample when "      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   515
          "computing exponentially decaying average for "                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   516
          "AdaptiveNUMAChunkSizing")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   517
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   518
  product(intx, NUMASpaceResizeRate, 1*G,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   519
          "Do not reallocate more that this amount per collection")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   520
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   521
  product(bool, UseAdaptiveNUMAChunkSizing, true,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   522
          "Enable adaptive chunk sizing for NUMA")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   523
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   524
  product(bool, NUMAStats, false,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   525
          "Print NUMA stats in detailed heap information")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   526
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   527
  product(intx, NUMAPageScanRate, 256,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   528
          "Maximum number of pages to include in the page scan procedure")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   529
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   530
  product_pd(bool, NeedsDeoptSuspend,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   531
          "True for register window machines (sparc/ia64)")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   532
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   533
  product(intx, UseSSE, 99,                                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   534
          "Highest supported SSE instructions set on x86/x64")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   535
                                                                            \
14132
3c1437abcefd 7184394: add intrinsics to use AES instructions
kvn
parents: 13974
diff changeset
   536
  product(bool, UseAES, false,                                               \
3c1437abcefd 7184394: add intrinsics to use AES instructions
kvn
parents: 13974
diff changeset
   537
          "Control whether AES instructions can be used on x86/x64")        \
3c1437abcefd 7184394: add intrinsics to use AES instructions
kvn
parents: 13974
diff changeset
   538
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   539
  product(uintx, LargePageSizeInBytes, 0,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   540
          "Large page size (0 to let VM choose the page size")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   541
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   542
  product(uintx, LargePageHeapSizeThreshold, 128*M,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   543
          "Use large pages if max heap is at least this big")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   544
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   545
  product(bool, ForceTimeHighResolution, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   546
          "Using high time resolution(For Win32 only)")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   547
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   548
  develop(bool, TraceItables, false,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   549
          "Trace initialization and use of itables")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   550
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   551
  develop(bool, TracePcPatching, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   552
          "Trace usage of frame::patch_pc")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   553
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   554
  develop(bool, TraceJumps, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   555
          "Trace assembly jumps in thread ring buffer")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   556
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   557
  develop(bool, TraceRelocator, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   558
          "Trace the bytecode relocator")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   559
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   560
  develop(bool, TraceLongCompiles, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   561
          "Print out every time compilation is longer than "                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   562
          "a given threashold")                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   563
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   564
  develop(bool, SafepointALot, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   565
          "Generates a lot of safepoints. Works with "                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   566
          "GuaranteedSafepointInterval")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   567
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   568
  product_pd(bool, BackgroundCompilation,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   569
          "A thread requesting compilation is not blocked during "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   570
          "compilation")                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   571
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   572
  product(bool, PrintVMQWaitTime, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   573
          "Prints out the waiting time in VM operation queue")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   574
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   575
  develop(bool, NoYieldsInMicrolock, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   576
          "Disable yields in microlock")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   577
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   578
  develop(bool, TraceOopMapGeneration, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   579
          "Shows oopmap generation")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   580
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   581
  product(bool, MethodFlushing, true,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   582
          "Reclamation of zombie and not-entrant methods")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   583
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   584
  develop(bool, VerifyStack, false,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   585
          "Verify stack of each thread when it is entering a runtime call") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   586
                                                                            \
10983
9ab65f4cec18 7104960: JSR 292: +VerifyMethodHandles in product JVM can overflow buffer
never
parents: 10963
diff changeset
   587
  diagnostic(bool, ForceUnreachable, false,                                 \
9ab65f4cec18 7104960: JSR 292: +VerifyMethodHandles in product JVM can overflow buffer
never
parents: 10963
diff changeset
   588
          "Make all non code cache addresses to be unreachable with forcing use of 64bit literal fixups") \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   589
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   590
  notproduct(bool, StressDerivedPointers, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   591
          "Force scavenge when a derived pointers is detected on stack "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   592
          "after rtm call")                                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   593
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   594
  develop(bool, TraceDerivedPointers, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   595
          "Trace traversal of derived pointers on stack")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   596
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   597
  notproduct(bool, TraceCodeBlobStacks, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   598
          "Trace stack-walk of codeblobs")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   599
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   600
  product(bool, PrintJNIResolving, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   601
          "Used to implement -v:jni")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   602
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   603
  notproduct(bool, PrintRewrites, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   604
          "Print methods that are being rewritten")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   605
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   606
  product(bool, UseInlineCaches, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   607
          "Use Inline Caches for virtual calls ")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   608
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   609
  develop(bool, InlineArrayCopy, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   610
          "inline arraycopy native that is known to be part of "            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   611
          "base library DLL")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   612
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   613
  develop(bool, InlineObjectHash, true,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   614
          "inline Object::hashCode() native that is known to be part "      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   615
          "of base library DLL")                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   616
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   617
  develop(bool, InlineNatives, true,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   618
          "inline natives that are known to be part of base library DLL")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   619
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   620
  develop(bool, InlineMathNatives, true,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   621
          "inline SinD, CosD, etc.")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   622
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   623
  develop(bool, InlineClassNatives, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   624
          "inline Class.isInstance, etc")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   625
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   626
  develop(bool, InlineThreadNatives, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   627
          "inline Thread.currentThread, etc")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   628
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   629
  develop(bool, InlineUnsafeOps, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   630
          "inline memory ops (native methods) from sun.misc.Unsafe")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   631
                                                                            \
11637
030466036615 7013347: allow crypto functions to be called inline to enhance performance
never
parents: 11636
diff changeset
   632
  product(bool, CriticalJNINatives, true,                                   \
030466036615 7013347: allow crypto functions to be called inline to enhance performance
never
parents: 11636
diff changeset
   633
          "check for critical JNI entry points")                            \
030466036615 7013347: allow crypto functions to be called inline to enhance performance
never
parents: 11636
diff changeset
   634
                                                                            \
030466036615 7013347: allow crypto functions to be called inline to enhance performance
never
parents: 11636
diff changeset
   635
  notproduct(bool, StressCriticalJNINatives, false,                         \
030466036615 7013347: allow crypto functions to be called inline to enhance performance
never
parents: 11636
diff changeset
   636
            "Exercise register saving code in critical natives")            \
030466036615 7013347: allow crypto functions to be called inline to enhance performance
never
parents: 11636
diff changeset
   637
                                                                            \
2348
4e71ed4c2709 6761600: Use sse 4.2 in intrinsics
cfang
parents: 2342
diff changeset
   638
  product(bool, UseSSE42Intrinsics, false,                                  \
4e71ed4c2709 6761600: Use sse 4.2 in intrinsics
cfang
parents: 2342
diff changeset
   639
          "SSE4.2 versions of intrinsics")                                  \
4e71ed4c2709 6761600: Use sse 4.2 in intrinsics
cfang
parents: 2342
diff changeset
   640
                                                                            \
14132
3c1437abcefd 7184394: add intrinsics to use AES instructions
kvn
parents: 13974
diff changeset
   641
  product(bool, UseAESIntrinsics, false,                                    \
3c1437abcefd 7184394: add intrinsics to use AES instructions
kvn
parents: 13974
diff changeset
   642
          "use intrinsics for AES versions of crypto")                      \
3c1437abcefd 7184394: add intrinsics to use AES instructions
kvn
parents: 13974
diff changeset
   643
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   644
  develop(bool, TraceCallFixup, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   645
          "traces all call fixups")                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   646
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   647
  develop(bool, DeoptimizeALot, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   648
          "deoptimize at every exit from the runtime system")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   649
                                                                            \
1553
fc10c169d15d 6772413: code cleanup
kvn
parents: 1550
diff changeset
   650
  notproduct(ccstrlist, DeoptimizeOnlyAt, "",                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   651
          "a comma separated list of bcis to deoptimize at")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   652
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   653
  product(bool, DeoptimizeRandom, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   654
          "deoptimize random frames on random exit from the runtime system")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
   655
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   656
  notproduct(bool, ZombieALot, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   657
          "creates zombies (non-entrant) at exit from the runt. system")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   658
                                                                            \
8076
96d498ec7ae1 6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents: 7896
diff changeset
   659
  product(bool, UnlinkSymbolsALot, false,                                   \
96d498ec7ae1 6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents: 7896
diff changeset
   660
          "unlink unreferenced symbols from the symbol table at safepoints")\
96d498ec7ae1 6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents: 7896
diff changeset
   661
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   662
  notproduct(bool, WalkStackALot, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   663
          "trace stack (no print) at every exit from the runtime system")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   664
                                                                            \
10739
91935236600e 7098194: integrate macosx-port changes
dcubed
parents: 10569
diff changeset
   665
  product(bool, Debugging, false,                                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   666
          "set when executing debug methods in debug.ccp "                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   667
          "(to prevent triggering assertions)")                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   668
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   669
  notproduct(bool, StrictSafepointChecks, trueInDebug,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   670
          "Enable strict checks that safepoints cannot happen for threads " \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   671
          "that used No_Safepoint_Verifier")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   672
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   673
  notproduct(bool, VerifyLastFrame, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   674
          "Verify oops on last frame on entry to VM")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   675
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   676
  develop(bool, TraceHandleAllocation, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   677
          "Prints out warnings when suspicious many handles are allocated") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   678
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   679
  product(bool, UseCompilerSafepoints, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   680
          "Stop at safepoints in compiled code")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   681
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   682
  product(bool, UseSplitVerifier, true,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   683
          "use split verifier with StackMapTable attributes")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   684
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   685
  product(bool, FailOverToOldVerifier, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   686
          "fail over to old verifier when split verifier fails")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   687
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   688
  develop(bool, ShowSafepointMsgs, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   689
          "Show msg. about safepoint synch.")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   690
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   691
  product(bool, SafepointTimeout, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   692
          "Time out and warn or fail after SafepointTimeoutDelay "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   693
          "milliseconds if failed to reach safepoint")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   694
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   695
  develop(bool, DieOnSafepointTimeout, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   696
          "Die upon failure to reach safepoint (see SafepointTimeout)")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   697
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   698
  /* 50 retries * (5 * current_retry_count) millis = ~6.375 seconds */      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   699
  /* typically, at most a few retries are needed */                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   700
  product(intx, SuspendRetryCount, 50,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   701
          "Maximum retry count for an external suspend request")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   702
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   703
  product(intx, SuspendRetryDelay, 5,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   704
          "Milliseconds to delay per retry (* current_retry_count)")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   705
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   706
  product(bool, AssertOnSuspendWaitFailure, false,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   707
          "Assert/Guarantee on external suspend wait failure")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   708
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   709
  product(bool, TraceSuspendWaitFailures, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   710
          "Trace external suspend wait failures")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   711
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   712
  product(bool, MaxFDLimit, true,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   713
          "Bump the number of file descriptors to max in solaris.")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   714
                                                                            \
11636
3c07b54482a5 7141200: log some interesting information in ring buffers for crashes
never
parents: 11632
diff changeset
   715
  diagnostic(bool, LogEvents, true,                                         \
3c07b54482a5 7141200: log some interesting information in ring buffers for crashes
never
parents: 11632
diff changeset
   716
             "Enable the various ring buffer event logs")                   \
3c07b54482a5 7141200: log some interesting information in ring buffers for crashes
never
parents: 11632
diff changeset
   717
                                                                            \
3c07b54482a5 7141200: log some interesting information in ring buffers for crashes
never
parents: 11632
diff changeset
   718
  diagnostic(intx, LogEventsBufferEntries, 10,                              \
3c07b54482a5 7141200: log some interesting information in ring buffers for crashes
never
parents: 11632
diff changeset
   719
             "Enable the various ring buffer event logs")                   \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   720
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   721
  product(bool, BytecodeVerificationRemote, true,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   722
          "Enables the Java bytecode verifier for remote classes")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   723
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   724
  product(bool, BytecodeVerificationLocal, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   725
          "Enables the Java bytecode verifier for local classes")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   726
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   727
  develop(bool, ForceFloatExceptions, trueInDebug,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   728
          "Force exceptions on FP stack under/overflow")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   729
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   730
  develop(bool, VerifyStackAtCalls, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   731
          "Verify that the stack pointer is unchanged after calls")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   732
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   733
  develop(bool, TraceJavaAssertions, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   734
          "Trace java language assertions")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   735
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   736
  notproduct(bool, CheckAssertionStatusDirectives, false,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   737
          "temporary - see javaClasses.cpp")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   738
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   739
  notproduct(bool, PrintMallocFree, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   740
          "Trace calls to C heap malloc/free allocation")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   741
                                                                            \
6176
4d9030fe341f 6953477: Increase portability and flexibility of building Hotspot
bobv
parents: 6062
diff changeset
   742
  product(bool, PrintOopAddress, false,                                     \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   743
          "Always print the location of the oop")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   744
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   745
  notproduct(bool, VerifyCodeCacheOften, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   746
          "Verify compiled-code cache often")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   747
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   748
  develop(bool, ZapDeadCompiledLocals, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   749
          "Zap dead locals in compiler frames")                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   750
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   751
  notproduct(bool, ZapDeadLocalsOld, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   752
          "Zap dead locals (old version, zaps all frames when "             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   753
          "entering the VM")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   754
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   755
  notproduct(bool, CheckOopishValues, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   756
          "Warn if value contains oop ( requires ZapDeadLocals)")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   757
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   758
  develop(bool, UseMallocOnly, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   759
          "use only malloc/free for allocation (no resource area/arena)")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   760
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   761
  develop(bool, PrintMalloc, false,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   762
          "print all malloc/free calls")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   763
                                                                            \
8320
544210b4dd48 7017124: Fix some VM stats to avoid 32-bit overflow
kvn
parents: 8076
diff changeset
   764
  develop(bool, PrintMallocStatistics, false,                               \
544210b4dd48 7017124: Fix some VM stats to avoid 32-bit overflow
kvn
parents: 8076
diff changeset
   765
          "print malloc/free statistics")                                   \
544210b4dd48 7017124: Fix some VM stats to avoid 32-bit overflow
kvn
parents: 8076
diff changeset
   766
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   767
  develop(bool, ZapResourceArea, trueInDebug,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   768
          "Zap freed resource/arena space with 0xABABABAB")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   769
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   770
  notproduct(bool, ZapVMHandleArea, trueInDebug,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   771
          "Zap freed VM handle space with 0xBCBCBCBC")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   772
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   773
  develop(bool, ZapJNIHandleArea, trueInDebug,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   774
          "Zap freed JNI handle space with 0xFEFEFEFE")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   775
                                                                            \
6762
f8d1b560700e 6423256: GC stacks should use a better data structure
jcoomes
parents: 6448
diff changeset
   776
  notproduct(bool, ZapStackSegments, trueInDebug,                           \
f8d1b560700e 6423256: GC stacks should use a better data structure
jcoomes
parents: 6448
diff changeset
   777
             "Zap allocated/freed Stack segments with 0xFADFADED")          \
f8d1b560700e 6423256: GC stacks should use a better data structure
jcoomes
parents: 6448
diff changeset
   778
                                                                            \
971
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   779
  develop(bool, ZapUnusedHeapArea, trueInDebug,                             \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   780
          "Zap unused heap space with 0xBAADBABE")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   781
                                                                            \
971
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   782
  develop(bool, TraceZapUnusedHeapArea, false,                              \
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   783
          "Trace zapping of unused heap space")                             \
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   784
                                                                            \
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   785
  develop(bool, CheckZapUnusedHeapArea, false,                              \
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   786
          "Check zapping of unused heap space")                             \
f0b20be4165d 6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents: 765
diff changeset
   787
                                                                            \
1668
8ec481b8f514 6578152: fill_region_with_object has usability and safety issues
jcoomes
parents: 1615
diff changeset
   788
  develop(bool, ZapFillerObjects, trueInDebug,                              \
8ec481b8f514 6578152: fill_region_with_object has usability and safety issues
jcoomes
parents: 1615
diff changeset
   789
          "Zap filler objects with 0xDEAFBABE")                             \
8ec481b8f514 6578152: fill_region_with_object has usability and safety issues
jcoomes
parents: 1615
diff changeset
   790
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   791
  develop(bool, PrintVMMessages, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   792
          "Print vm messages on console")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   793
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   794
  product(bool, PrintGCApplicationConcurrentTime, false,                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   795
          "Print the time the application has been running")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   796
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   797
  product(bool, PrintGCApplicationStoppedTime, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   798
          "Print the time the application has been stopped")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   799
                                                                            \
13476
471200fb94fd 7116786: RFE: Detailed information on VerifyErrors
kamg
parents: 13197
diff changeset
   800
  diagnostic(bool, VerboseVerification, false,                              \
471200fb94fd 7116786: RFE: Detailed information on VerifyErrors
kamg
parents: 13197
diff changeset
   801
             "Display detailed verification details")                       \
471200fb94fd 7116786: RFE: Detailed information on VerifyErrors
kamg
parents: 13197
diff changeset
   802
                                                                            \
5403
6b0dd9c75dde 6888954: argument formatting for assert() and friends
jcoomes
parents: 5251
diff changeset
   803
  notproduct(uintx, ErrorHandlerTest, 0,                                    \
6b0dd9c75dde 6888954: argument formatting for assert() and friends
jcoomes
parents: 5251
diff changeset
   804
          "If > 0, provokes an error after VM initialization; the value"    \
6b0dd9c75dde 6888954: argument formatting for assert() and friends
jcoomes
parents: 5251
diff changeset
   805
          "determines which error to provoke.  See test_error_handler()"    \
6b0dd9c75dde 6888954: argument formatting for assert() and friends
jcoomes
parents: 5251
diff changeset
   806
          "in debug.cpp.")                                                  \
6b0dd9c75dde 6888954: argument formatting for assert() and friends
jcoomes
parents: 5251
diff changeset
   807
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   808
  develop(bool, Verbose, false,                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   809
          "Prints additional debugging information from other modes")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   810
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   811
  develop(bool, PrintMiscellaneous, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   812
          "Prints uncategorized debugging information (requires +Verbose)") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   813
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   814
  develop(bool, WizardMode, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   815
          "Prints much more debugging information")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   816
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   817
  product(bool, ShowMessageBoxOnError, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   818
          "Keep process alive on VM fatal error")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   819
                                                                            \
8119
81eef1b06988 7014918: Improve core/minidump handling in Hotspot
ctornqvi
parents: 8114
diff changeset
   820
  product(bool, CreateMinidumpOnCrash, false,                               \
81eef1b06988 7014918: Improve core/minidump handling in Hotspot
ctornqvi
parents: 8114
diff changeset
   821
          "Create minidump on VM fatal error")                              \
81eef1b06988 7014918: Improve core/minidump handling in Hotspot
ctornqvi
parents: 8114
diff changeset
   822
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   823
  product_pd(bool, UseOSErrorReporting,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   824
          "Let VM fatal error propagate to the OS (ie. WER on Windows)")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   825
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   826
  product(bool, SuppressFatalErrorMessage, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   827
          "Do NO Fatal Error report [Avoid deadlock]")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   828
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   829
  product(ccstrlist, OnError, "",                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   830
          "Run user-defined commands on fatal error; see VMError.cpp "      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   831
          "for examples")                                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   832
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   833
  product(ccstrlist, OnOutOfMemoryError, "",                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   834
          "Run user-defined commands on first java.lang.OutOfMemoryError")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   835
                                                                            \
2141
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
   836
  manageable(bool, HeapDumpBeforeFullGC, false,                             \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
   837
          "Dump heap to file before any major stop-world GC")               \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
   838
                                                                            \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
   839
  manageable(bool, HeapDumpAfterFullGC, false,                              \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
   840
          "Dump heap to file after any major stop-world GC")                \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
   841
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   842
  manageable(bool, HeapDumpOnOutOfMemoryError, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   843
          "Dump heap to file when java.lang.OutOfMemoryError is thrown")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   844
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   845
  manageable(ccstr, HeapDumpPath, NULL,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   846
          "When HeapDumpOnOutOfMemoryError is on, the path (filename or"    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   847
          "directory) of the dump file (defaults to java_pid<pid>.hprof"    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   848
          "in the working directory)")                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   849
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   850
  develop(uintx, SegmentedHeapDumpThreshold, 2*G,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   851
          "Generate a segmented heap dump (JAVA PROFILE 1.0.2 format) "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   852
          "when the heap usage is larger than this")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   853
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   854
  develop(uintx, HeapDumpSegmentSize, 1*G,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   855
          "Approximate segment size when generating a segmented heap dump") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   856
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   857
  develop(bool, BreakAtWarning, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   858
          "Execute breakpoint upon encountering VM warning")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   859
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   860
  develop(bool, TraceVMOperation, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   861
          "Trace vm operations")                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   862
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   863
  develop(bool, UseFakeTimers, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   864
          "Tells whether the VM should use system time or a fake timer")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   865
                                                                            \
13195
be27e1b6a4b9 6995781: Native Memory Tracking (Phase 1)
zgu
parents: 13091
diff changeset
   866
  product(ccstr, NativeMemoryTracking, "off",                               \
be27e1b6a4b9 6995781: Native Memory Tracking (Phase 1)
zgu
parents: 13091
diff changeset
   867
          "Native memory tracking options")                                 \
be27e1b6a4b9 6995781: Native Memory Tracking (Phase 1)
zgu
parents: 13091
diff changeset
   868
                                                                            \
13861
619cff4bfb8b 7188594: Print statistic collected by NMT with VM flag
zgu
parents: 13739
diff changeset
   869
  diagnostic(bool, PrintNMTStatistics, false,                               \
619cff4bfb8b 7188594: Print statistic collected by NMT with VM flag
zgu
parents: 13739
diff changeset
   870
          "Print native memory tracking summary data if it is on")          \
619cff4bfb8b 7188594: Print statistic collected by NMT with VM flag
zgu
parents: 13739
diff changeset
   871
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   872
  diagnostic(bool, LogCompilation, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   873
          "Log compilation activity in detail to hotspot.log or LogFile")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   874
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   875
  product(bool, PrintCompilation, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   876
          "Print compilations")                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   877
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   878
  diagnostic(bool, TraceNMethodInstalls, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   879
             "Trace nmethod intallation")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   880
                                                                            \
11195
48e0d7ae1378 7110058: change default for ScavengeRootsInCode to 2
twisti
parents: 10989
diff changeset
   881
  diagnostic(intx, ScavengeRootsInCode, 2,                                  \
3908
24b55ad4c228 6863023: need non-perm oops in code cache for JSR 292
jrose
parents: 3610
diff changeset
   882
             "0: do not allow scavengable oops in the code cache; "         \
24b55ad4c228 6863023: need non-perm oops in code cache for JSR 292
jrose
parents: 3610
diff changeset
   883
             "1: allow scavenging from the code cache; "                    \
24b55ad4c228 6863023: need non-perm oops in code cache for JSR 292
jrose
parents: 3610
diff changeset
   884
             "2: emit as many constants as the compiler can see")           \
24b55ad4c228 6863023: need non-perm oops in code cache for JSR 292
jrose
parents: 3610
diff changeset
   885
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   886
  product(bool, AlwaysRestoreFPU, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   887
          "Restore the FPU control word after every JNI call (expensive)")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   888
                                                                            \
10988
a3b2bd43ef4f 7107042: assert(no_dead_loop) failed: dead loop detected
kvn
parents: 10983
diff changeset
   889
  diagnostic(bool, PrintCompilation2, false,                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   890
          "Print additional statistics per compilation")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   891
                                                                            \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   892
  diagnostic(bool, PrintAdapterHandlers, false,                             \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   893
          "Print code generated for i2c/c2i adapters")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   894
                                                                            \
13391
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 13197
diff changeset
   895
  diagnostic(bool, VerifyAdapterCalls, trueInDebug,                         \
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 13197
diff changeset
   896
          "Verify that i2c/c2i adapters are called properly")               \
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 13197
diff changeset
   897
                                                                            \
4755
eee57ea6d910 6921922: fix for 6911204 breaks tagged stack interpreter
never
parents: 4754
diff changeset
   898
  develop(bool, VerifyAdapterSharing, false,                                \
eee57ea6d910 6921922: fix for 6911204 breaks tagged stack interpreter
never
parents: 4754
diff changeset
   899
          "Verify that the code for shared adapters is the equivalent")     \
eee57ea6d910 6921922: fix for 6911204 breaks tagged stack interpreter
never
parents: 4754
diff changeset
   900
                                                                            \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   901
  diagnostic(bool, PrintAssembly, false,                                    \
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   902
          "Print assembly code (using external disassembler.so)")           \
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   903
                                                                            \
1402
ccb40ce62b79 6744783: HotSpot segfaults if given -XX options with an empty string argument
never
parents: 1129
diff changeset
   904
  diagnostic(ccstr, PrintAssemblyOptions, NULL,                             \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   905
          "Options string passed to disassembler.so")                       \
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   906
                                                                            \
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   907
  diagnostic(bool, PrintNMethods, false,                                    \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   908
          "Print assembly code for nmethods when generated")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   909
                                                                            \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   910
  diagnostic(bool, PrintNativeNMethods, false,                              \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   911
          "Print assembly code for native nmethods when generated")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   912
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   913
  develop(bool, PrintDebugInfo, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   914
          "Print debug information for all nmethods when generated")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   915
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   916
  develop(bool, PrintRelocations, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   917
          "Print relocation information for all nmethods when generated")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   918
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   919
  develop(bool, PrintDependencies, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   920
          "Print dependency information for all nmethods when generated")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   921
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   922
  develop(bool, PrintExceptionHandlers, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   923
          "Print exception handler tables for all nmethods when generated") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   924
                                                                            \
14835
70896cb93c35 8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents: 14490
diff changeset
   925
  develop(bool, StressCompiledExceptionHandlers, false,                     \
70896cb93c35 8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents: 14490
diff changeset
   926
         "Exercise compiled exception handlers")                            \
70896cb93c35 8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents: 14490
diff changeset
   927
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   928
  develop(bool, InterceptOSException, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   929
          "Starts debugger when an implicit OS (e.g., NULL) "               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   930
          "exception happens")                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   931
                                                                            \
15201
f3d755b11424 8005204: Code Cache Reduction: command line options implementation
vladidan
parents: 15107
diff changeset
   932
  product(bool, PrintCodeCache, false,                                      \
f3d755b11424 8005204: Code Cache Reduction: command line options implementation
vladidan
parents: 15107
diff changeset
   933
          "Print the code cache memory usage when exiting")                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   934
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   935
  develop(bool, PrintCodeCache2, false,                                     \
15201
f3d755b11424 8005204: Code Cache Reduction: command line options implementation
vladidan
parents: 15107
diff changeset
   936
          "Print detailed usage info on the code cache when exiting")       \
f3d755b11424 8005204: Code Cache Reduction: command line options implementation
vladidan
parents: 15107
diff changeset
   937
                                                                            \
f3d755b11424 8005204: Code Cache Reduction: command line options implementation
vladidan
parents: 15107
diff changeset
   938
  product(bool, PrintCodeCacheOnCompilation, false,                         \
f3d755b11424 8005204: Code Cache Reduction: command line options implementation
vladidan
parents: 15107
diff changeset
   939
          "Print the code cache memory usage each time a method is compiled") \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   940
                                                                            \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
   941
  diagnostic(bool, PrintStubCode, false,                                    \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   942
          "Print generated stub code")                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   943
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   944
  product(bool, StackTraceInThrowable, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   945
          "Collect backtrace in throwable when exception happens")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   946
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   947
  product(bool, OmitStackTraceInFastThrow, true,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   948
          "Omit backtraces for some 'hot' exceptions in optimized code")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   949
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   950
  product(bool, ProfilerPrintByteCodeStatistics, false,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   951
          "Prints byte code statictics when dumping profiler output")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   952
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   953
  product(bool, ProfilerRecordPC, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   954
          "Collects tick for each 16 byte interval of compiled code")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   955
                                                                            \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   956
  product(bool, ProfileVM, false,                                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   957
          "Profiles ticks that fall within VM (either in the VM Thread "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   958
          "or VM code called through stubs)")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   959
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   960
  product(bool, ProfileIntervals, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   961
          "Prints profiles for each interval (see ProfileIntervalsTicks)")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   962
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   963
  notproduct(bool, ProfilerCheckIntervals, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   964
          "Collect and print info on spacing of profiler ticks")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   965
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   966
  develop(bool, PrintJVMWarnings, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   967
          "Prints warnings for unimplemented JVM functions")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   968
                                                                            \
6967
c5ebdcf8372e 6392697: Additional flag needed to supress Hotspot warning messages
kamg
parents: 6965
diff changeset
   969
  product(bool, PrintWarnings, true,                                        \
c5ebdcf8372e 6392697: Additional flag needed to supress Hotspot warning messages
kamg
parents: 6965
diff changeset
   970
          "Prints JVM warnings to output stream")                           \
c5ebdcf8372e 6392697: Additional flag needed to supress Hotspot warning messages
kamg
parents: 6965
diff changeset
   971
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   972
  notproduct(uintx, WarnOnStalledSpinLock, 0,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   973
          "Prints warnings for stalled SpinLocks")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   974
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   975
  product(bool, RegisterFinalizersAtInit, true,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   976
          "Register finalizable objects at end of Object.<init> or "        \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
   977
          "after allocation")                                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
   978
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   979
  develop(bool, RegisterReferences, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   980
          "Tells whether the VM should register soft/weak/final/phantom "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   981
          "references")                                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   982
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   983
  develop(bool, IgnoreRewrites, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   984
          "Supress rewrites of bytecodes in the oopmap generator. "         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   985
          "This is unsafe!")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   986
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   987
  develop(bool, PrintCodeCacheExtension, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   988
          "Print extension of code cache")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   989
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   990
  develop(bool, UsePrivilegedStack, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   991
          "Enable the security JVM functions")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   992
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   993
  develop(bool, ProtectionDomainVerification, true,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   994
          "Verifies protection domain before resolution in system "         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   995
          "dictionary")                                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   996
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   997
  product(bool, ClassUnloading, true,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   998
          "Do unloading of classes")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
   999
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1000
  develop(bool, DisableStartThread, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1001
          "Disable starting of additional Java threads "                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1002
          "(for debugging only)")                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1003
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1004
  develop(bool, MemProfiling, false,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1005
          "Write memory usage profiling to log file")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1006
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1007
  notproduct(bool, PrintSystemDictionaryAtExit, false,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1008
          "Prints the system dictionary at exit")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1009
                                                                            \
11628
13155c0c00b4 7114376: Make system dictionary hashtable bucket array size configurable
acorn
parents: 11601
diff changeset
  1010
  experimental(intx, PredictedLoadedClassCount, 0,                          \
13155c0c00b4 7114376: Make system dictionary hashtable bucket array size configurable
acorn
parents: 11601
diff changeset
  1011
          "Experimental: Tune loaded class cache starting size.")           \
13155c0c00b4 7114376: Make system dictionary hashtable bucket array size configurable
acorn
parents: 11601
diff changeset
  1012
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1013
  diagnostic(bool, UnsyncloadClass, false,                                  \
1890
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1014
          "Unstable: VM calls loadClass unsynchronized. Custom "            \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1015
          "class loader  must call VM synchronized for findClass "          \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1016
          "and defineClass.")                                               \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1017
                                                                            \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1018
  product(bool, AlwaysLockClassLoader, false,                               \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1019
          "Require the VM to acquire the class loader lock before calling " \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1020
          "loadClass() even for class loaders registering "                 \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1021
          "as parallel capable")                                            \
1890
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1022
                                                                            \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1023
  product(bool, AllowParallelDefineClass, false,                            \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1024
          "Allow parallel defineClass requests for class loaders "          \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1025
          "registering as parallel capable")                                \
1890
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1026
                                                                            \
9ce941df84eb 4670071: loadClassInternal is too restrictive.
acorn
parents: 1671
diff changeset
  1027
  product(bool, MustCallLoadClassInternal, false,                           \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1028
          "Call loadClassInternal() rather than loadClass()")               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1029
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1030
  product_pd(bool, DontYieldALot,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1031
          "Throw away obvious excess yield calls (for SOLARIS only)")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1032
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1033
  product_pd(bool, ConvertSleepToYield,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1034
          "Converts sleep(0) to thread yield "                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1035
          "(may be off for SOLARIS to improve GUI)")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1036
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1037
  product(bool, ConvertYieldToSleep, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1038
          "Converts yield to a sleep of MinSleepInterval to simulate Win32 "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1039
          "behavior (SOLARIS only)")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1040
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1041
  product(bool, UseBoundThreads, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1042
          "Bind user level threads to kernel threads (for SOLARIS only)")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1043
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1044
  develop(bool, UseDetachedThreads, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1045
          "Use detached threads that are recycled upon termination "        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1046
          "(for SOLARIS only)")                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1047
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1048
  product(bool, UseLWPSynchronization, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1049
          "Use LWP-based instead of libthread-based synchronization "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1050
          "(SPARC only)")                                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1051
                                                                            \
1402
ccb40ce62b79 6744783: HotSpot segfaults if given -XX options with an empty string argument
never
parents: 1129
diff changeset
  1052
  product(ccstr, SyncKnobs, NULL,                                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1053
          "(Unstable) Various monitor synchronization tunables")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1054
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1055
  product(intx, EmitSync, 0,                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1056
          "(Unsafe,Unstable) "                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1057
          " Controls emission of inline sync fast-path code")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1058
                                                                            \
5710
d664086c0add 6852873: Reduce safepoint cleanup time
acorn
parents: 5539
diff changeset
  1059
  product(intx, MonitorBound, 0, "Bound Monitor population")                \
d664086c0add 6852873: Reduce safepoint cleanup time
acorn
parents: 5539
diff changeset
  1060
                                                                            \
d664086c0add 6852873: Reduce safepoint cleanup time
acorn
parents: 5539
diff changeset
  1061
  product(bool, MonitorInUseLists, false, "Track Monitors for Deflation")   \
d664086c0add 6852873: Reduce safepoint cleanup time
acorn
parents: 5539
diff changeset
  1062
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1063
  product(intx, SyncFlags, 0, "(Unsafe,Unstable) Experimental Sync flags" ) \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1064
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1065
  product(intx, SyncVerbose, 0, "(Unstable)" )                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1066
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1067
  product(intx, ClearFPUAtPark, 0, "(Unsafe,Unstable)" )                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1068
                                                                            \
15193
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1069
  product(intx, hashCode, 5,                                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1070
         "(Unstable) select hashCode generation algorithm" )                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1071
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1072
  product(intx, WorkAroundNPTLTimedWaitHang, 1,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1073
         "(Unstable, Linux-specific)"                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1074
         " avoid NPTL-FUTEX hang pthread_cond_timedwait" )                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1075
                                                                            \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1076
  product(bool, FilterSpuriousWakeups, true,                                \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1077
          "Prevent spurious or premature wakeups from object.wait "         \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1078
          "(Solaris only)")                                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1079
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1080
  product(intx, NativeMonitorTimeout, -1, "(Unstable)" )                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1081
  product(intx, NativeMonitorFlags, 0, "(Unstable)" )                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1082
  product(intx, NativeMonitorSpinLimit, 20, "(Unstable)" )                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1083
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1084
  develop(bool, UsePthreads, false,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1085
          "Use pthread-based instead of libthread-based synchronization "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1086
          "(SPARC only)")                                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1087
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1088
  product(bool, AdjustConcurrency, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1089
          "call thr_setconcurrency at thread create time to avoid "         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1090
          "LWP starvation on MP systems (For Solaris Only)")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1091
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1092
  product(bool, ReduceSignalUsage, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1093
          "Reduce the use of OS signals in Java and/or the VM")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1094
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1095
  develop_pd(bool, ShareVtableStubs,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1096
          "Share vtable stubs (smaller code but worse branch prediction")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1097
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1098
  develop(bool, LoadLineNumberTables, true,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1099
          "Tells whether the class file parser loads line number tables")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1100
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1101
  develop(bool, LoadLocalVariableTables, true,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1102
          "Tells whether the class file parser loads local variable tables")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1103
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1104
  develop(bool, LoadLocalVariableTypeTables, true,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1105
          "Tells whether the class file parser loads local variable type tables")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1106
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1107
  product(bool, AllowUserSignalHandlers, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1108
          "Do not complain if the application installs signal handlers "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1109
          "(Solaris & Linux only)")                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1110
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1111
  product(bool, UseSignalChaining, true,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1112
          "Use signal-chaining to invoke signal handlers installed "        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1113
          "by the application (Solaris & Linux only)")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1114
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1115
  product(bool, UseAltSigs, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1116
          "Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM "      \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1117
          "internal signals (Solaris only)")                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1118
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1119
  product(bool, AllowJNIEnvProxy, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1120
          "Allow JNIEnv proxies for jdbx")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1121
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1122
  product(bool, JNIDetachReleasesMonitors, true,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1123
          "JNI DetachCurrentThread releases monitors owned by thread")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1124
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1125
  product(bool, RestoreMXCSROnJNICalls, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1126
          "Restore MXCSR when returning from JNI calls")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1127
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1128
  product(bool, CheckJNICalls, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1129
          "Verify all arguments to JNI calls")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1130
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1131
  product(bool, UseFastJNIAccessors, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1132
          "Use optimized versions of Get<Primitive>Field")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1133
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1134
  product(bool, EagerXrunInit, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1135
          "Eagerly initialize -Xrun libraries; allows startup profiling, "  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1136
          " but not all -Xrun libraries may support the state of the VM at this time") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1137
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1138
  product(bool, PreserveAllAnnotations, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1139
          "Preserve RuntimeInvisibleAnnotations as well as RuntimeVisibleAnnotations") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1140
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1141
  develop(uintx, PreallocatedOutOfMemoryErrorCount, 4,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1142
          "Number of OutOfMemoryErrors preallocated with backtrace")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1143
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1144
  product(bool, LazyBootClassLoader, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1145
          "Enable/disable lazy opening of boot class path entries")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1146
                                                                            \
1437
d1846c1c04c4 6532536: Optimize arraycopy stubs for Intel cpus
kvn
parents: 1434
diff changeset
  1147
  product(bool, UseXMMForArrayCopy, false,                                  \
d1846c1c04c4 6532536: Optimize arraycopy stubs for Intel cpus
kvn
parents: 1434
diff changeset
  1148
          "Use SSE2 MOVQ instruction for Arraycopy")                        \
d1846c1c04c4 6532536: Optimize arraycopy stubs for Intel cpus
kvn
parents: 1434
diff changeset
  1149
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1150
  product(intx, FieldsAllocationStyle, 1,                                   \
5250
ea743ca75cd9 6940733: allocate non static oop fields in super and sub classes together
kvn
parents: 5249
diff changeset
  1151
          "0 - type based with oops first, 1 - with oops last, "            \
ea743ca75cd9 6940733: allocate non static oop fields in super and sub classes together
kvn
parents: 5249
diff changeset
  1152
          "2 - oops in super and sub classes are together")                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1153
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1154
  product(bool, CompactFields, true,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1155
          "Allocate nonstatic fields in gaps between previous fields")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1156
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1157
  notproduct(bool, PrintCompactFieldsSavings, false,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1158
          "Print how many words were saved with CompactFields")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1159
                                                                            \
15193
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1160
  notproduct(bool, PrintFieldLayout, false,                                 \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1161
          "Print field layout for each class")                              \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1162
                                                                            \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1163
  product(intx, ContendedPaddingWidth, 128,                                 \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1164
          "How many bytes to pad the fields/classes marked @Contended with")\
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1165
                                                                            \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1166
  product(bool, EnableContended, true,                                      \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1167
          "Enable @Contended annotation support")                           \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1168
                                                                            \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1169
  product(bool, RestrictContended, true,                                    \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1170
          "Restrict @Contended to trusted classes")                         \
8e6b5694267f 8003985: Support @Contended Annotation - JEP 142
jwilhelm
parents: 15101
diff changeset
  1171
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1172
  product(bool, UseBiasedLocking, true,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1173
          "Enable biased locking in JVM")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1174
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1175
  product(intx, BiasedLockingStartupDelay, 4000,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1176
          "Number of milliseconds to wait before enabling biased locking")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1177
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1178
  diagnostic(bool, PrintBiasedLockingStatistics, false,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1179
          "Print statistics of biased locking in JVM")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1180
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1181
  product(intx, BiasedLockingBulkRebiasThreshold, 20,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1182
          "Threshold of number of revocations per type to try to "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1183
          "rebias all objects in the heap of that type")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1184
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1185
  product(intx, BiasedLockingBulkRevokeThreshold, 40,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1186
          "Threshold of number of revocations per type to permanently "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1187
          "revoke biases of all objects in the heap of that type")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1188
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1189
  product(intx, BiasedLockingDecayTime, 25000,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1190
          "Decay time (in milliseconds) to re-enable bulk rebiasing of a "  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1191
          "type after previous bulk rebias")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1192
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1193
  /* tracing */                                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1194
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1195
  notproduct(bool, TraceRuntimeCalls, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1196
          "Trace run-time calls")                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1197
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1198
  develop(bool, TraceJNICalls, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1199
          "Trace JNI calls")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1200
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1201
  notproduct(bool, TraceJVMCalls, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1202
          "Trace JVM calls")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1203
                                                                            \
1402
ccb40ce62b79 6744783: HotSpot segfaults if given -XX options with an empty string argument
never
parents: 1129
diff changeset
  1204
  product(ccstr, TraceJVMTI, NULL,                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1205
          "Trace flags for JVMTI functions and events")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1206
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1207
  /* This option can change an EMCP method into an obsolete method. */      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1208
  /* This can affect tests that except specific methods to be EMCP. */      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1209
  /* This option should be used with caution. */                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1210
  product(bool, StressLdcRewrite, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1211
          "Force ldc -> ldc_w rewrite during RedefineClasses")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1212
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1213
  product(intx, TraceRedefineClasses, 0,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1214
          "Trace level for JVMTI RedefineClasses")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1215
                                                                            \
5697
0cf7190475ee 6957080: MethodComparator needs stress testing
jrose
parents: 5694
diff changeset
  1216
  develop(bool, StressMethodComparator, false,                              \
0cf7190475ee 6957080: MethodComparator needs stress testing
jrose
parents: 5694
diff changeset
  1217
          "run the MethodComparator on all loaded methods")                 \
0cf7190475ee 6957080: MethodComparator needs stress testing
jrose
parents: 5694
diff changeset
  1218
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1219
  /* change to false by default sometime after Mustang */                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1220
  product(bool, VerifyMergedCPBytecodes, true,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1221
          "Verify bytecodes after RedefineClasses constant pool merging")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1222
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1223
  develop(bool, TraceJNIHandleAllocation, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1224
          "Trace allocation/deallocation of JNI handle blocks")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1225
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1226
  develop(bool, TraceThreadEvents, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1227
          "Trace all thread events")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1228
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1229
  develop(bool, TraceBytecodes, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1230
          "Trace bytecode execution")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1231
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1232
  develop(bool, TraceClassInitialization, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1233
          "Trace class initialization")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1234
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1235
  develop(bool, TraceExceptions, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1236
          "Trace exceptions")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1237
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1238
  develop(bool, TraceICs, false,                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1239
          "Trace inline cache changes")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1240
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1241
  notproduct(bool, TraceInvocationCounterOverflow, false,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1242
          "Trace method invocation counter overflow")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1243
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1244
  develop(bool, TraceInlineCacheClearing, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1245
          "Trace clearing of inline caches in nmethods")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1246
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1247
  develop(bool, TraceDependencies, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1248
          "Trace dependencies")                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1249
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1250
  develop(bool, VerifyDependencies, trueInDebug,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1251
         "Exercise and verify the compilation dependency mechanism")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1252
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1253
  develop(bool, TraceNewOopMapGeneration, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1254
          "Trace OopMapGeneration")                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1255
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1256
  develop(bool, TraceNewOopMapGenerationDetailed, false,                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1257
          "Trace OopMapGeneration: print detailed cell states")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1258
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1259
  develop(bool, TimeOopMap, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1260
          "Time calls to GenerateOopMap::compute_map() in sum")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1261
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1262
  develop(bool, TimeOopMap2, false,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1263
          "Time calls to GenerateOopMap::compute_map() individually")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1264
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1265
  develop(bool, TraceMonitorMismatch, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1266
          "Trace monitor matching failures during OopMapGeneration")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1267
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1268
  develop(bool, TraceOopMapRewrites, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1269
          "Trace rewritting of method oops during oop map generation")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1270
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1271
  develop(bool, TraceSafepoint, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1272
          "Trace safepoint operations")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1273
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1274
  develop(bool, TraceICBuffer, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1275
          "Trace usage of IC buffer")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1276
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1277
  develop(bool, TraceCompiledIC, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1278
          "Trace changes of compiled IC")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1279
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1280
  notproduct(bool, TraceZapDeadLocals, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1281
          "Trace zapping dead locals")                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1282
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1283
  develop(bool, TraceStartupTime, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1284
          "Trace setup time")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1285
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1286
  develop(bool, TraceProtectionDomainVerification, false,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1287
          "Trace protection domain verifcation")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1288
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1289
  develop(bool, TraceClearedExceptions, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1290
          "Prints when an exception is forcibly cleared")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1291
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1292
  product(bool, TraceClassResolution, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1293
          "Trace all constant pool resolutions (for debugging)")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1294
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1295
  product(bool, TraceBiasedLocking, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1296
          "Trace biased locking in JVM")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1297
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1298
  product(bool, TraceMonitorInflation, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1299
          "Trace monitor inflation in JVM")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1300
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1301
  /* gc */                                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1302
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1303
  product(bool, UseSerialGC, false,                                         \
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1304
          "Use the serial garbage collector")                               \
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1305
                                                                            \
4741
3b1373d466d2 6919980: G1: remove +UseG1GC from under experimental options (second attempt)
tonyp
parents: 4650
diff changeset
  1306
  product(bool, UseG1GC, false,                                             \
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1307
          "Use the Garbage-First garbage collector")                        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1308
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1309
  product(bool, UseParallelGC, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1310
          "Use the Parallel Scavenge garbage collector")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1311
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1312
  product(bool, UseParallelOldGC, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1313
          "Use the Parallel Old garbage collector")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1314
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1315
  product(uintx, HeapMaximumCompactionInterval, 20,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1316
          "How often should we maximally compact the heap (not allowing "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1317
          "any dead space)")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1318
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1319
  product(uintx, HeapFirstMaximumCompactionCount, 3,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1320
          "The collection count for the first maximum compaction")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1321
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1322
  product(bool, UseMaximumCompactionOnSystemGC, true,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1323
          "In the Parallel Old garbage collector maximum compaction for "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1324
          "a system GC")                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1325
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1326
  product(uintx, ParallelOldDeadWoodLimiterMean, 50,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1327
          "The mean used by the par compact dead wood"                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1328
          "limiter (a number between 0-100).")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1329
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1330
  product(uintx, ParallelOldDeadWoodLimiterStdDev, 80,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1331
          "The standard deviation used by the par compact dead wood"        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1332
          "limiter (a number between 0-100).")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1333
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1334
  product(uintx, ParallelGCThreads, 0,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1335
          "Number of parallel threads parallel gc will use")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1336
                                                                            \
11174
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1337
  product(bool, UseDynamicNumberOfGCThreads, false,                         \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1338
          "Dynamically choose the number of parallel threads "              \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1339
          "parallel gc will use")                                           \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1340
                                                                            \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1341
  diagnostic(bool, ForceDynamicNumberOfGCThreads, false,                    \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1342
          "Force dynamic selection of the number of"                        \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1343
          "parallel threads parallel gc will use to aid debugging")         \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1344
                                                                            \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1345
  product(uintx, HeapSizePerGCThread, ScaleForWordSize(64*M),               \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1346
          "Size of heap (bytes) per GC thread used in calculating the "     \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1347
          "number of GC threads")                                           \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1348
                                                                            \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1349
  product(bool, TraceDynamicGCThreads, false,                               \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1350
          "Trace the dynamic GC thread usage")                              \
fccee5238e70 6593758: RFE: Enhance GC ergonomics to dynamically choose ParallelGCThreads
jmasa
parents: 10991
diff changeset
  1351
                                                                            \
1670
0deb85ea62d5 6765954: par compact - stress mode for splitting young gen spaces
jcoomes
parents: 1668
diff changeset
  1352
  develop(bool, ParallelOldGCSplitALot, false,                              \
0deb85ea62d5 6765954: par compact - stress mode for splitting young gen spaces
jcoomes
parents: 1668
diff changeset
  1353
          "Provoke splitting (copying data from a young gen space to"       \
0deb85ea62d5 6765954: par compact - stress mode for splitting young gen spaces
jcoomes
parents: 1668
diff changeset
  1354
          "multiple destination spaces)")                                   \
0deb85ea62d5 6765954: par compact - stress mode for splitting young gen spaces
jcoomes
parents: 1668
diff changeset
  1355
                                                                            \
0deb85ea62d5 6765954: par compact - stress mode for splitting young gen spaces
jcoomes
parents: 1668
diff changeset
  1356
  develop(uintx, ParallelOldGCSplitInterval, 3,                             \
0deb85ea62d5 6765954: par compact - stress mode for splitting young gen spaces
jcoomes
parents: 1668
diff changeset
  1357
          "How often to provoke splitting a young gen space")               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1358
                                                                            \
5035
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1359
  product(uintx, ConcGCThreads, 0,                                          \
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1360
          "Number of threads concurrent gc will use")                       \
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1361
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1362
  product(uintx, YoungPLABSize, 4096,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1363
          "Size of young gen promotion labs (in HeapWords)")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1364
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1365
  product(uintx, OldPLABSize, 1024,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1366
          "Size of old gen promotion labs (in HeapWords)")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1367
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1368
  product(uintx, GCTaskTimeStampEntries, 200,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1369
          "Number of time stamp entries per gc worker thread")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1370
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1371
  product(bool, AlwaysTenure, false,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1372
          "Always tenure objects in eden. (ParallelGC only)")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1373
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1374
  product(bool, NeverTenure, false,                                         \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1375
          "Never tenure objects in eden, May tenure on overflow "           \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1376
          "(ParallelGC only)")                                              \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1377
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1378
  product(bool, ScavengeBeforeFullGC, true,                                 \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1379
          "Scavenge youngest generation before each full GC, "              \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1380
          "used with UseParallelGC")                                        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1381
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1382
  develop(bool, ScavengeWithObjectsInToSpace, false,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1383
          "Allow scavenges to occur when to_space contains objects.")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1384
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1385
  product(bool, UseConcMarkSweepGC, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1386
          "Use Concurrent Mark-Sweep GC in the old generation")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1387
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1388
  product(bool, ExplicitGCInvokesConcurrent, false,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1389
          "A System.gc() request invokes a concurrent collection;"          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1390
          " (effective only when UseConcMarkSweepGC)")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1391
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1392
  product(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false,        \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1393
          "A System.gc() request invokes a concurrent collection and "      \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1394
          "also unloads classes during such a concurrent gc cycle "         \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1395
          "(effective only when UseConcMarkSweepGC)")                       \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1396
                                                                            \
5433
c182d4c3039e 6919638: CMS: ExplicitGCInvokesConcurrent misinteracts with gc locker
ysr
parents: 5431
diff changeset
  1397
  product(bool, GCLockerInvokesConcurrent, false,                           \
c182d4c3039e 6919638: CMS: ExplicitGCInvokesConcurrent misinteracts with gc locker
ysr
parents: 5431
diff changeset
  1398
          "The exit of a JNI CS necessitating a scavenge also"              \
c182d4c3039e 6919638: CMS: ExplicitGCInvokesConcurrent misinteracts with gc locker
ysr
parents: 5431
diff changeset
  1399
          " kicks off a bkgrd concurrent collection")                       \
c182d4c3039e 6919638: CMS: ExplicitGCInvokesConcurrent misinteracts with gc locker
ysr
parents: 5431
diff changeset
  1400
                                                                            \
7416
cfe3bfab7d48 6994056: G1: when GC locker is active, extend the Eden instead of allocating into the old gen
tonyp
parents: 7397
diff changeset
  1401
  product(uintx, GCLockerEdenExpansionPercent, 5,                           \
cfe3bfab7d48 6994056: G1: when GC locker is active, extend the Eden instead of allocating into the old gen
tonyp
parents: 7397
diff changeset
  1402
          "How much the GC can expand the eden by while the GC locker  "    \
cfe3bfab7d48 6994056: G1: when GC locker is active, extend the Eden instead of allocating into the old gen
tonyp
parents: 7397
diff changeset
  1403
          "is active (as a percentage)")                                    \
cfe3bfab7d48 6994056: G1: when GC locker is active, extend the Eden instead of allocating into the old gen
tonyp
parents: 7397
diff changeset
  1404
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1405
  develop(bool, UseCMSAdaptiveFreeLists, true,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1406
          "Use Adaptive Free Lists in the CMS generation")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1407
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1408
  develop(bool, UseAsyncConcMarkSweepGC, true,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1409
          "Use Asynchronous Concurrent Mark-Sweep GC in the old generation")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1410
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1411
  develop(bool, RotateCMSCollectionTypes, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1412
          "Rotate the CMS collections among concurrent and STW")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1413
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1414
  product(bool, UseCMSBestFit, true,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1415
          "Use CMS best fit allocation strategy")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1416
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1417
  product(bool, UseCMSCollectionPassing, true,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1418
          "Use passing of collection from background to foreground")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1419
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1420
  product(bool, UseParNewGC, false,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1421
          "Use parallel threads in the new generation.")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1422
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1423
  product(bool, ParallelGCVerbose, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1424
          "Verbose output for parallel GC.")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1425
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1426
  product(intx, ParallelGCBufferWastePct, 10,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1427
          "wasted fraction of parallel allocation buffer.")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1428
                                                                            \
9624
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1429
  diagnostic(bool, ParallelGCRetainPLAB, false,                             \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1430
             "Retain parallel allocation buffers across scavenges; "        \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1431
             " -- disabled because this currently conflicts with "          \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1432
             " parallel card scanning under certain conditions ")           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1433
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1434
  product(intx, TargetPLABWastePct, 10,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1435
          "target wasted space in last buffer as pct of overall allocation")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1436
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1437
  product(uintx, PLABWeight, 75,                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1438
          "Percentage (0-100) used to weight the current sample when"       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1439
          "computing exponentially decaying average for ResizePLAB.")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1440
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1441
  product(bool, ResizePLAB, true,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1442
          "Dynamically resize (survivor space) promotion labs")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1443
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1444
  product(bool, PrintPLAB, false,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1445
          "Print (survivor space) promotion labs sizing decisions")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1446
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1447
  product(intx, ParGCArrayScanChunk, 50,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1448
          "Scan a subset and push remainder, if array is bigger than this") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1449
                                                                            \
2362
5e1bfddf919e 6824570: ParNew: Fix memory leak introduced in 6819891
ysr
parents: 2346
diff changeset
  1450
  product(bool, ParGCUseLocalOverflow, false,                               \
5e1bfddf919e 6824570: ParNew: Fix memory leak introduced in 6819891
ysr
parents: 2346
diff changeset
  1451
          "Instead of a global overflow list, use local overflow stacks")   \
5e1bfddf919e 6824570: ParNew: Fix memory leak introduced in 6819891
ysr
parents: 2346
diff changeset
  1452
                                                                            \
2346
3aa355016e90 6819891: ParNew: Fix work queue overflow code to deal correctly with +UseCompressedOops
ysr
parents: 2259
diff changeset
  1453
  product(bool, ParGCTrimOverflow, true,                                    \
2362
5e1bfddf919e 6824570: ParNew: Fix memory leak introduced in 6819891
ysr
parents: 2346
diff changeset
  1454
          "Eagerly trim the local overflow lists (when ParGCUseLocalOverflow") \
2346
3aa355016e90 6819891: ParNew: Fix work queue overflow code to deal correctly with +UseCompressedOops
ysr
parents: 2259
diff changeset
  1455
                                                                            \
1910
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1456
  notproduct(bool, ParGCWorkQueueOverflowALot, false,                       \
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1457
          "Whether we should simulate work queue overflow in ParNew")       \
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1458
                                                                            \
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1459
  notproduct(uintx, ParGCWorkQueueOverflowInterval, 1000,                   \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1460
          "An `interval' counter that determines how frequently "           \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1461
          "we simulate overflow; a smaller number increases frequency")     \
1910
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1462
                                                                            \
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1463
  product(uintx, ParGCDesiredObjsFromOverflowList, 20,                      \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1464
          "The desired number of objects to claim from the overflow list")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1465
                                                                            \
11396
917d8673b5ef 7121618: Change type of number of GC workers to unsigned int.
jmasa
parents: 11201
diff changeset
  1466
  diagnostic(uintx, ParGCStridesPerThread, 2,                               \
9624
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1467
          "The number of strides per worker thread that we divide up the "  \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1468
          "card table scanning work into")                                  \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1469
                                                                            \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1470
  diagnostic(intx, ParGCCardsPerStrideChunk, 256,                           \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1471
          "The number of cards in each chunk of the parallel chunks used "  \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1472
          "during card table scanning")                                     \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1473
                                                                            \
c3657c3324ee 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
ysr
parents: 9426
diff changeset
  1474
  product(uintx, CMSParPromoteBlocksToClaim, 16,                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1475
          "Number of blocks to attempt to claim when refilling CMS LAB for "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1476
          "parallel GC.")                                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1477
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1478
  product(uintx, OldPLABWeight, 50,                                         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1479
          "Percentage (0-100) used to weight the current sample when"       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1480
          "computing exponentially decaying average for resizing CMSParPromoteBlocksToClaim.") \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1481
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1482
  product(bool, ResizeOldPLAB, true,                                        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1483
          "Dynamically resize (old gen) promotion labs")                    \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1484
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1485
  product(bool, PrintOldPLAB, false,                                        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1486
          "Print (old gen) promotion labs sizing decisions")                \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1487
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1488
  product(uintx, CMSOldPLABMin, 16,                                         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1489
          "Min size of CMS gen promotion lab caches per worker per blksize")\
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1490
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1491
  product(uintx, CMSOldPLABMax, 1024,                                       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1492
          "Max size of CMS gen promotion lab caches per worker per blksize")\
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1493
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1494
  product(uintx, CMSOldPLABNumRefills, 4,                                   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1495
          "Nominal number of refills of CMS gen promotion lab cache"        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1496
          " per worker per block size")                                     \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1497
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1498
  product(bool, CMSOldPLABResizeQuicker, false,                             \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1499
          "Whether to react on-the-fly during a scavenge to a sudden"       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1500
          " change in block demand rate")                                   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1501
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1502
  product(uintx, CMSOldPLABToleranceFactor, 4,                              \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1503
          "The tolerance of the phase-change detector for on-the-fly"       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1504
          " PLAB resizing during a scavenge")                               \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1505
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1506
  product(uintx, CMSOldPLABReactivityFactor, 2,                             \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1507
          "The gain in the feedback loop for on-the-fly PLAB resizing"      \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1508
          " during a scavenge")                                             \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1509
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1510
  product(bool, AlwaysPreTouch, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1511
          "It forces all freshly committed pages to be pre-touched.")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1512
                                                                            \
8687
264727307495 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 8681
diff changeset
  1513
  product_pd(intx, CMSYoungGenPerWorker,                                    \
264727307495 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 8681
diff changeset
  1514
          "The maximum size of young gen chosen by default per GC worker "  \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1515
          "thread available")                                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1516
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1517
  product(bool, CMSIncrementalMode, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1518
          "Whether CMS GC should operate in \"incremental\" mode")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1519
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1520
  product(uintx, CMSIncrementalDutyCycle, 10,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1521
          "CMS incremental mode duty cycle (a percentage, 0-100).  If"      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1522
          "CMSIncrementalPacing is enabled, then this is just the initial"  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1523
          "value")                                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1524
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1525
  product(bool, CMSIncrementalPacing, true,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1526
          "Whether the CMS incremental mode duty cycle should be "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1527
          "automatically adjusted")                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1528
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1529
  product(uintx, CMSIncrementalDutyCycleMin, 0,                             \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1530
          "Lower bound on the duty cycle when CMSIncrementalPacing is "     \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1531
          "enabled (a percentage, 0-100)")                                  \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1532
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1533
  product(uintx, CMSIncrementalSafetyFactor, 10,                            \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1534
          "Percentage (0-100) used to add conservatism when computing the " \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1535
          "duty cycle")                                                     \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1536
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1537
  product(uintx, CMSIncrementalOffset, 0,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1538
          "Percentage (0-100) by which the CMS incremental mode duty cycle" \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1539
          " is shifted to the right within the period between young GCs")   \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1540
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1541
  product(uintx, CMSExpAvgFactor, 50,                                       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1542
          "Percentage (0-100) used to weight the current sample when"       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1543
          "computing exponential averages for CMS statistics.")             \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1544
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1545
  product(uintx, CMS_FLSWeight, 75,                                         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1546
          "Percentage (0-100) used to weight the current sample when"       \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1547
          "computing exponentially decating averages for CMS FLS statistics.") \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1548
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1549
  product(uintx, CMS_FLSPadding, 1,                                         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1550
          "The multiple of deviation from mean to use for buffering"        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1551
          "against volatility in free list demand.")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1552
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1553
  product(uintx, FLSCoalescePolicy, 2,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1554
          "CMS: Aggression level for coalescing, increasing from 0 to 4")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1555
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1556
  product(bool, FLSAlwaysCoalesceLarge, false,                              \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1557
          "CMS: Larger free blocks are always available for coalescing")    \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1558
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1559
  product(double, FLSLargestBlockCoalesceProximity, 0.99,                   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1560
          "CMS: the smaller the percentage the greater the coalition force")\
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1561
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1562
  product(double, CMSSmallCoalSurplusPercent, 1.05,                         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1563
          "CMS: the factor by which to inflate estimated demand of small"   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1564
          " block sizes to prevent coalescing with an adjoining block")     \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1565
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1566
  product(double, CMSLargeCoalSurplusPercent, 0.95,                         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1567
          "CMS: the factor by which to inflate estimated demand of large"   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1568
          " block sizes to prevent coalescing with an adjoining block")     \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1569
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1570
  product(double, CMSSmallSplitSurplusPercent, 1.10,                        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1571
          "CMS: the factor by which to inflate estimated demand of small"   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1572
          " block sizes to prevent splitting to supply demand for smaller"  \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1573
          " blocks")                                                        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1574
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1575
  product(double, CMSLargeSplitSurplusPercent, 1.00,                        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1576
          "CMS: the factor by which to inflate estimated demand of large"   \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1577
          " block sizes to prevent splitting to supply demand for smaller"  \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1578
          " blocks")                                                        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1579
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1580
  product(bool, CMSExtrapolateSweep, false,                                 \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1581
          "CMS: cushion for block demand during sweep")                     \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1582
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1583
  product(uintx, CMS_SweepWeight, 75,                                       \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1584
          "Percentage (0-100) used to weight the current sample when "      \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1585
          "computing exponentially decaying average for inter-sweep "       \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1586
          "duration")                                                       \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1587
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1588
  product(uintx, CMS_SweepPadding, 1,                                       \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1589
          "The multiple of deviation from mean to use for buffering "       \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1590
          "against volatility in inter-sweep duration.")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1591
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1592
  product(uintx, CMS_SweepTimerThresholdMillis, 10,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1593
          "Skip block flux-rate sampling for an epoch unless inter-sweep "  \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1594
          "duration exceeds this threhold in milliseconds")                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1595
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1596
  develop(bool, CMSTraceIncrementalMode, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1597
          "Trace CMS incremental mode")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1598
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1599
  develop(bool, CMSTraceIncrementalPacing, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1600
          "Trace CMS incremental mode pacing computation")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1601
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1602
  develop(bool, CMSTraceThreadState, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1603
          "Trace the CMS thread state (enable the trace_state() method)")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1604
                                                                            \
15094
80724d2b6f25 8000325: Change default for CMSClassUnloadingEnabled to true
jmasa
parents: 15088
diff changeset
  1605
  product(bool, CMSClassUnloadingEnabled, true,                             \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1606
          "Whether class unloading enabled when using CMS GC")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1607
                                                                            \
341
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1608
  product(uintx, CMSClassUnloadingMaxInterval, 0,                           \
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1609
          "When CMS class unloading is enabled, the maximum CMS cycle count"\
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1610
          " for which classes may not be unloaded")                         \
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1611
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1612
  product(bool, CMSCompactWhenClearAllSoftRefs, true,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1613
          "Compact when asked to collect CMS gen with clear_all_soft_refs") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1614
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1615
  product(bool, UseCMSCompactAtFullCollection, true,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1616
          "Use mark sweep compact at full collections")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1617
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1618
  product(uintx, CMSFullGCsBeforeCompaction, 0,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1619
          "Number of CMS full collection done before compaction if > 0")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1620
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1621
  develop(intx, CMSDictionaryChoice, 0,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1622
          "Use BinaryTreeDictionary as default in the CMS generation")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1623
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1624
  product(uintx, CMSIndexedFreeListReplenish, 4,                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  1625
          "Replenish an indexed free list with this number of chunks")      \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1626
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1627
  product(bool, CMSReplenishIntermediate, true,                             \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1628
          "Replenish all intermediate free-list caches")                    \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1629
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1630
  product(bool, CMSSplitIndexedFreeListBlocks, true,                        \
6447
32cc5cad7fa6 6983930: CMS: Various small cleanups ca September 2010
ysr
parents: 6419
diff changeset
  1631
          "When satisfying batched demand, split blocks from the "          \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1632
          "IndexedFreeList whose size is a multiple of requested size")     \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1633
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1634
  product(bool, CMSLoopWarn, false,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1635
          "Warn in case of excessive CMS looping")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1636
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1637
  develop(bool, CMSOverflowEarlyRestoration, false,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1638
          "Whether preserved marks should be restored early")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1639
                                                                            \
5035
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1640
  product(uintx, MarkStackSize, NOT_LP64(32*K) LP64_ONLY(4*M),              \
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1641
          "Size of marking stack")                                          \
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1642
                                                                            \
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1643
  product(uintx, MarkStackSizeMax, NOT_LP64(4*M) LP64_ONLY(512*M),          \
0e498c4df637 6928081: G1: rename parameters common with CMS
jmasa
parents: 5034
diff changeset
  1644
          "Max size of marking stack")                                      \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1645
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1646
  notproduct(bool, CMSMarkStackOverflowALot, false,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1647
          "Whether we should simulate frequent marking stack / work queue"  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1648
          " overflow")                                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1649
                                                                            \
1910
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1650
  notproduct(uintx, CMSMarkStackOverflowInterval, 1000,                     \
386106352d02 6786503: Overflow list performance can be improved
ysr
parents: 1890
diff changeset
  1651
          "An `interval' counter that determines how frequently"            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1652
          " we simulate overflow; a smaller number increases frequency")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1653
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1654
  product(uintx, CMSMaxAbortablePrecleanLoops, 0,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1655
          "(Temporary, subject to experimentation)"                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1656
          "Maximum number of abortable preclean iterations, if > 0")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1657
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1658
  product(intx, CMSMaxAbortablePrecleanTime, 5000,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1659
          "(Temporary, subject to experimentation)"                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1660
          "Maximum time in abortable preclean in ms")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1661
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1662
  product(uintx, CMSAbortablePrecleanMinWorkPerIteration, 100,              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1663
          "(Temporary, subject to experimentation)"                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1664
          "Nominal minimum work per abortable preclean iteration")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1665
                                                                            \
6984
c6718f921eb6 6992998: CMSWaitDuration=0 causes hangs with +ExplicitGCInvokesConcurrent
ysr
parents: 6769
diff changeset
  1666
  manageable(intx, CMSAbortablePrecleanWaitMillis, 100,                     \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1667
          "(Temporary, subject to experimentation)"                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1668
          " Time that we sleep between iterations when not given"           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1669
          " enough work per iteration")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1670
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1671
  product(uintx, CMSRescanMultiple, 32,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1672
          "Size (in cards) of CMS parallel rescan task")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1673
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1674
  product(uintx, CMSConcMarkMultiple, 32,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1675
          "Size (in cards) of CMS concurrent MT marking task")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1676
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1677
  product(bool, CMSAbortSemantics, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1678
          "Whether abort-on-overflow semantics is implemented")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1679
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1680
  product(bool, CMSParallelRemarkEnabled, true,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1681
          "Whether parallel remark enabled (only if ParNewGC)")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1682
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1683
  product(bool, CMSParallelSurvivorRemarkEnabled, true,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1684
          "Whether parallel remark of survivor space"                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1685
          " enabled (effective only if CMSParallelRemarkEnabled)")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1686
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1687
  product(bool, CMSPLABRecordAlways, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1688
          "Whether to always record survivor space PLAB bdries"             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1689
          " (effective only if CMSParallelSurvivorRemarkEnabled)")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1690
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1691
  product(bool, CMSConcurrentMTEnabled, true,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1692
          "Whether multi-threaded concurrent work enabled (if ParNewGC)")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1693
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1694
  product(bool, CMSPrecleaningEnabled, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1695
          "Whether concurrent precleaning enabled")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1696
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1697
  product(uintx, CMSPrecleanIter, 3,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1698
          "Maximum number of precleaning iteration passes")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1699
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1700
  product(uintx, CMSPrecleanNumerator, 2,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1701
          "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence"  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1702
          " ratio")                                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1703
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1704
  product(uintx, CMSPrecleanDenominator, 3,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1705
          "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence"  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1706
          " ratio")                                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1707
                                                                            \
1605
6b43d186eb8d 6722113: CMS: Incorrect overflow handling during precleaning of Reference lists
ysr
parents: 1562
diff changeset
  1708
  product(bool, CMSPrecleanRefLists1, true,                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1709
          "Preclean ref lists during (initial) preclean phase")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1710
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1711
  product(bool, CMSPrecleanRefLists2, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1712
          "Preclean ref lists during abortable preclean phase")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1713
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1714
  product(bool, CMSPrecleanSurvivors1, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1715
          "Preclean survivors during (initial) preclean phase")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1716
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1717
  product(bool, CMSPrecleanSurvivors2, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1718
          "Preclean survivors during abortable preclean phase")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1719
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1720
  product(uintx, CMSPrecleanThreshold, 1000,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1721
          "Don't re-iterate if #dirty cards less than this")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1722
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1723
  product(bool, CMSCleanOnEnter, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1724
          "Clean-on-enter optimization for reducing number of dirty cards") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1725
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1726
  product(uintx, CMSRemarkVerifyVariant, 1,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1727
          "Choose variant (1,2) of verification following remark")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1728
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1729
  product(uintx, CMSScheduleRemarkEdenSizeThreshold, 2*M,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1730
          "If Eden used is below this value, don't try to schedule remark") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1731
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1732
  product(uintx, CMSScheduleRemarkEdenPenetration, 50,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1733
          "The Eden occupancy % at which to try and schedule remark pause") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1734
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1735
  product(uintx, CMSScheduleRemarkSamplingRatio, 5,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1736
          "Start sampling Eden top at least before yg occupancy reaches"    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1737
          " 1/<ratio> of the size at which we plan to schedule remark")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1738
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1739
  product(uintx, CMSSamplingGrain, 16*K,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1740
          "The minimum distance between eden samples for CMS (see above)")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1741
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1742
  product(bool, CMSScavengeBeforeRemark, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1743
          "Attempt scavenge before the CMS remark step")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1744
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1745
  develop(bool, CMSTraceSweeper, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1746
          "Trace some actions of the CMS sweeper")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1747
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1748
  product(uintx, CMSWorkQueueDrainThreshold, 10,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1749
          "Don't drain below this size per parallel worker/thief")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1750
                                                                            \
6984
c6718f921eb6 6992998: CMSWaitDuration=0 causes hangs with +ExplicitGCInvokesConcurrent
ysr
parents: 6769
diff changeset
  1751
  manageable(intx, CMSWaitDuration, 2000,                                   \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1752
          "Time in milliseconds that CMS thread waits for young GC")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1753
                                                                            \
15859
b8d7620fb179 7189971: Implement CMSWaitDuration for non-incremental mode of CMS
jmasa
parents: 15610
diff changeset
  1754
  develop(uintx, CMSCheckInterval, 1000,                                    \
b8d7620fb179 7189971: Implement CMSWaitDuration for non-incremental mode of CMS
jmasa
parents: 15610
diff changeset
  1755
          "Interval in milliseconds that CMS thread checks if it "          \
b8d7620fb179 7189971: Implement CMSWaitDuration for non-incremental mode of CMS
jmasa
parents: 15610
diff changeset
  1756
          "should start a collection cycle")                                \
b8d7620fb179 7189971: Implement CMSWaitDuration for non-incremental mode of CMS
jmasa
parents: 15610
diff changeset
  1757
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1758
  product(bool, CMSYield, true,                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1759
          "Yield between steps of concurrent mark & sweep")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1760
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1761
  product(uintx, CMSBitMapYieldQuantum, 10*M,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1762
          "Bitmap operations should process at most this many bits"         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1763
          "between yields")                                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1764
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1765
  product(bool, CMSDumpAtPromotionFailure, false,                           \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1766
          "Dump useful information about the state of the CMS old "         \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1767
          " generation upon a promotion failure.")                          \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1768
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1769
  product(bool, CMSPrintChunksInDump, false,                                \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1770
          "In a dump enabled by CMSDumpAtPromotionFailure, include "        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1771
          " more detailed information about the free chunks.")              \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1772
                                                                            \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1773
  product(bool, CMSPrintObjectsInDump, false,                               \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1774
          "In a dump enabled by CMSDumpAtPromotionFailure, include "        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1775
          " more detailed information about the allocated objects.")        \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1776
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1777
  diagnostic(bool, FLSVerifyAllHeapReferences, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1778
          "Verify that all refs across the FLS boundary "                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1779
          " are to valid objects")                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1780
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1781
  diagnostic(bool, FLSVerifyLists, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1782
          "Do lots of (expensive) FreeListSpace verification")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1783
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1784
  diagnostic(bool, FLSVerifyIndexTable, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1785
          "Do lots of (expensive) FLS index table verification")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1786
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1787
  develop(bool, FLSVerifyDictionary, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1788
          "Do lots of (expensive) FLS dictionary verification")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1789
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1790
  develop(bool, VerifyBlockOffsetArray, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1791
          "Do (expensive!) block offset array verification")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1792
                                                                            \
9422
e3c824172b61 7040068: CMS: Possibly unsafe initialization of BlockOffsetArrayUseUnallocatedBlock
brutisso
parents: 9182
diff changeset
  1793
  diagnostic(bool, BlockOffsetArrayUseUnallocatedBlock, false,              \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1794
          "Maintain _unallocated_block in BlockOffsetArray"                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1795
          " (currently applicable only to CMS collector)")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1796
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1797
  develop(bool, TraceCMSState, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1798
          "Trace the state of the CMS collection")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1799
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1800
  product(intx, RefDiscoveryPolicy, 0,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1801
          "Whether reference-based(0) or referent-based(1)")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1802
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1803
  product(bool, ParallelRefProcEnabled, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1804
          "Enable parallel reference processing whenever possible")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1805
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1806
  product(bool, ParallelRefProcBalancingEnabled, true,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1807
          "Enable balancing of reference processing queues")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1808
                                                                            \
15605
bf7de87bbe3a 8006432: Ratio flags should be unsigned
jwilhelm
parents: 15604
diff changeset
  1809
  product(uintx, CMSTriggerRatio, 80,                                       \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1810
          "Percentage of MinHeapFreeRatio in CMS generation that is "       \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1811
          "allocated before a CMS collection cycle commences")              \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1812
                                                                            \
341
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1813
  product(uintx, CMSBootstrapOccupancy, 50,                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1814
          "Percentage CMS generation occupancy at which to "                \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1815
          "initiate CMS collection for bootstrapping collection stats")     \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1816
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1817
  product(intx, CMSInitiatingOccupancyFraction, -1,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1818
          "Percentage CMS generation occupancy to start a CMS collection "  \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1819
          "cycle. A negative value means that CMSTriggerRatio is used")     \
341
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1820
                                                                            \
5034
a1cec6310394 6928073: G1: use existing command line parameters for marking cycle initiation
tonyp
parents: 4759
diff changeset
  1821
  product(uintx, InitiatingHeapOccupancyPercent, 45,                        \
a1cec6310394 6928073: G1: use existing command line parameters for marking cycle initiation
tonyp
parents: 4759
diff changeset
  1822
          "Percentage of the (entire) heap occupancy to start a "           \
15604
0209977cd9c4 7052429: G1: Avoid unnecessary scanning of humongous regions during concurrent marking
johnc
parents: 15221
diff changeset
  1823
          "concurrent GC cycle. It is used by GCs that trigger a "          \
5034
a1cec6310394 6928073: G1: use existing command line parameters for marking cycle initiation
tonyp
parents: 4759
diff changeset
  1824
          "concurrent GC cycle based on the occupancy of the entire heap, " \
a1cec6310394 6928073: G1: use existing command line parameters for marking cycle initiation
tonyp
parents: 4759
diff changeset
  1825
          "not just one of the generations (e.g., G1). A value of 0 "       \
a1cec6310394 6928073: G1: use existing command line parameters for marking cycle initiation
tonyp
parents: 4759
diff changeset
  1826
          "denotes 'do constant GC cycles'.")                               \
a1cec6310394 6928073: G1: use existing command line parameters for marking cycle initiation
tonyp
parents: 4759
diff changeset
  1827
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1828
  product(bool, UseCMSInitiatingOccupancyOnly, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1829
          "Only use occupancy as a crierion for starting a CMS collection") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1830
                                                                            \
341
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1831
  product(intx, CMSIsTooFullPercentage, 98,                                 \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1832
          "An absolute ceiling above which CMS will always consider the "   \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  1833
          "unloading of classes when class unloading is enabled")           \
341
6578aad59716 6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction
ysr
parents: 188
diff changeset
  1834
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1835
  develop(bool, CMSTestInFreeList, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1836
          "Check if the coalesced range is already in the "                 \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1837
          "free lists as claimed")                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1838
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1839
  notproduct(bool, CMSVerifyReturnedBytes, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1840
          "Check that all the garbage collected was returned to the "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1841
          "free lists.")                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1842
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1843
  notproduct(bool, ScavengeALot, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1844
          "Force scavenge at every Nth exit from the runtime system "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1845
          "(N=ScavengeALotInterval)")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1846
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1847
  develop(bool, FullGCALot, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1848
          "Force full gc at every Nth exit from the runtime system "        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1849
          "(N=FullGCALotInterval)")                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1850
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1851
  notproduct(bool, GCALotAtAllSafepoints, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1852
          "Enforce ScavengeALot/GCALot at all potential safepoints")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1853
                                                                            \
4574
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1854
  product(bool, PrintPromotionFailure, false,                               \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1855
          "Print additional diagnostic information following "              \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1856
          " promotion failure")                                             \
b2d5b0975515 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 4434
diff changeset
  1857
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1858
  notproduct(bool, PromotionFailureALot, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1859
          "Use promotion failure handling on every youngest generation "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1860
          "collection")                                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1861
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1862
  develop(uintx, PromotionFailureALotCount, 1000,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1863
          "Number of promotion failures occurring at ParGCAllocBuffer"      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1864
          "refill attempts (ParNew) or promotion attempts "                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1865
          "(other young collectors) ")                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1866
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1867
  develop(uintx, PromotionFailureALotInterval, 5,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1868
          "Total collections between promotion failures alot")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1869
                                                                            \
6763
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
  1870
  experimental(intx, WorkStealingSleepMillis, 1,                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1871
          "Sleep time when sleep is used for yields")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1872
                                                                            \
8925
5fdd1d28e7ef 6948149: G1: Imbalance in termination times
brutisso
parents: 8728
diff changeset
  1873
  experimental(uintx, WorkStealingYieldsBeforeSleep, 5000,                  \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1874
          "Number of yields before a sleep is done during workstealing")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1875
                                                                            \
6763
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
  1876
  experimental(uintx, WorkStealingHardSpins, 4096,                          \
2010
c13462bbad17 6690928: Use spinning in combination with yields for workstealing termination.
jmasa
parents: 2005
diff changeset
  1877
          "Number of iterations in a spin loop between checks on "          \
c13462bbad17 6690928: Use spinning in combination with yields for workstealing termination.
jmasa
parents: 2005
diff changeset
  1878
          "time out of hard spin")                                          \
c13462bbad17 6690928: Use spinning in combination with yields for workstealing termination.
jmasa
parents: 2005
diff changeset
  1879
                                                                            \
6763
711b8a44c4dd 6692906: CMS: parallel concurrent marking may be prone to hanging or stalling mutators for periods of time
ysr
parents: 6762
diff changeset
  1880
  experimental(uintx, WorkStealingSpinToYieldRatio, 10,                     \
2010
c13462bbad17 6690928: Use spinning in combination with yields for workstealing termination.
jmasa
parents: 2005
diff changeset
  1881
          "Ratio of hard spins to calls to yield")                          \
c13462bbad17 6690928: Use spinning in combination with yields for workstealing termination.
jmasa
parents: 2005
diff changeset
  1882
                                                                            \
5076
8b74a4b60b31 4396719: Mark Sweep stack overflow on deeply nested Object arrays
jcoomes
parents: 5039
diff changeset
  1883
  develop(uintx, ObjArrayMarkingStride, 512,                                \
8b74a4b60b31 4396719: Mark Sweep stack overflow on deeply nested Object arrays
jcoomes
parents: 5039
diff changeset
  1884
          "Number of ObjArray elements to push onto the marking stack"      \
8b74a4b60b31 4396719: Mark Sweep stack overflow on deeply nested Object arrays
jcoomes
parents: 5039
diff changeset
  1885
          "before pushing a continuation entry")                            \
8b74a4b60b31 4396719: Mark Sweep stack overflow on deeply nested Object arrays
jcoomes
parents: 5039
diff changeset
  1886
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1887
  develop(bool, MetadataAllocationFailALot, false,                          \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1888
          "Fail metadata allocations at intervals controlled by "           \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1889
          "MetadataAllocationFailALotInterval")                             \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1890
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1891
  develop(uintx, MetadataAllocationFailALotInterval, 1000,                  \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1892
          "metadata allocation failure alot interval")                      \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1893
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1894
  develop(bool, MetaDataDeallocateALot, false,                              \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1895
          "Deallocation bunches of metadata at intervals controlled by "    \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1896
          "MetaDataAllocateALotInterval")                                   \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1897
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1898
  develop(uintx, MetaDataDeallocateALotInterval, 100,                       \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1899
          "Metadata deallocation alot interval")                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1900
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1901
  develop(bool, TraceMetadataChunkAllocation, false,                        \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  1902
          "Trace chunk metadata allocations")                               \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1903
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1904
  product(bool, TraceMetadataHumongousAllocation, false,                    \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1905
          "Trace humongous metadata allocations")                           \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1906
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1907
  develop(bool, TraceMetavirtualspaceAllocation, false,                     \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  1908
          "Trace virtual space metadata allocations")                       \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  1909
                                                                            \
10002
2d83be3a0927 7016112: CMS: crash during promotion testing
brutisso
parents: 9990
diff changeset
  1910
  notproduct(bool, ExecuteInternalVMTests, false,                           \
2d83be3a0927 7016112: CMS: crash during promotion testing
brutisso
parents: 9990
diff changeset
  1911
          "Enable execution of internal VM tests.")                         \
2d83be3a0927 7016112: CMS: crash during promotion testing
brutisso
parents: 9990
diff changeset
  1912
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1913
  product_pd(bool, UseTLAB, "Use thread-local object allocation")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1914
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1915
  product_pd(bool, ResizeTLAB,                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1916
          "Dynamically resize tlab size for threads")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1917
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1918
  product(bool, ZeroTLAB, false,                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1919
          "Zero out the newly created TLAB")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1920
                                                                            \
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1921
  product(bool, FastTLABRefill, true,                                       \
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1922
          "Use fast TLAB refill code")                                      \
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents: 389
diff changeset
  1923
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1924
  product(bool, PrintTLAB, false,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1925
          "Print various TLAB related information")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1926
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1927
  product(bool, TLABStats, true,                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1928
          "Print various TLAB related information")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1929
                                                                            \
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  1930
  EMBEDDED_ONLY(product(bool, LowMemoryProtection, true,                    \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  1931
          "Enable LowMemoryProtection"))                                    \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  1932
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1933
  product_pd(bool, NeverActAsServerClassMachine,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1934
          "Never act like a server-class machine")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1935
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1936
  product(bool, AlwaysActAsServerClassMachine, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1937
          "Always act like a server-class machine")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1938
                                                                            \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1939
  product_pd(uint64_t, MaxRAM,                                              \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1940
          "Real memory size (in bytes) used to set maximum heap size")      \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1941
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1942
  product(uintx, ErgoHeapSizeLimit, 0,                                      \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1943
          "Maximum ergonomically set heap size (in bytes); zero means use " \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1944
          "MaxRAM / MaxRAMFraction")                                        \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1945
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1946
  product(uintx, MaxRAMFraction, 4,                                         \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1947
          "Maximum fraction (1/n) of real memory used for maximum heap "    \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1948
          "size")                                                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1949
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1950
  product(uintx, DefaultMaxRAMFraction, 4,                                  \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1951
          "Maximum fraction (1/n) of real memory used for maximum heap "    \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1952
          "size; deprecated: to be renamed to MaxRAMFraction")              \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1953
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1954
  product(uintx, MinRAMFraction, 2,                                         \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1955
          "Minimum fraction (1/n) of real memory used for maxmimum heap "   \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1956
          "size on systems with small physical memory size")                \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1957
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1958
  product(uintx, InitialRAMFraction, 64,                                    \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  1959
          "Fraction (1/n) of real memory used for initial heap size")       \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1960
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1961
  product(bool, UseAutoGCSelectPolicy, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1962
          "Use automatic collection selection policy")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1963
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1964
  product(uintx, AutoGCSelectPauseMillis, 5000,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1965
          "Automatic GC selection pause threshhold in ms")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1966
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1967
  product(bool, UseAdaptiveSizePolicy, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1968
          "Use adaptive generation sizing policies")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1969
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1970
  product(bool, UsePSAdaptiveSurvivorSizePolicy, true,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1971
          "Use adaptive survivor sizing policies")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1972
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1973
  product(bool, UseAdaptiveGenerationSizePolicyAtMinorCollection, true,     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1974
          "Use adaptive young-old sizing policies at minor collections")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1975
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1976
  product(bool, UseAdaptiveGenerationSizePolicyAtMajorCollection, true,     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1977
          "Use adaptive young-old sizing policies at major collections")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1978
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1979
  product(bool, UseAdaptiveSizePolicyWithSystemGC, false,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1980
          "Use statistics from System.GC for adaptive size policy")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1981
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1982
  product(bool, UseAdaptiveGCBoundary, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1983
          "Allow young-old boundary to move")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1984
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1985
  develop(bool, TraceAdaptiveGCBoundary, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1986
          "Trace young-old boundary moves")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1987
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1988
  develop(intx, PSAdaptiveSizePolicyResizeVirtualSpaceAlot, -1,             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1989
          "Resize the virtual spaces of the young or old generations")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1990
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1991
  product(uintx, AdaptiveSizeThroughPutPolicy, 0,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1992
          "Policy for changeing generation size for throughput goals")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1993
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1994
  product(uintx, AdaptiveSizePausePolicy, 0,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1995
          "Policy for changing generation size for pause goals")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1996
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1997
  develop(bool, PSAdjustTenuredGenForMinorPause, false,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1998
          "Adjust tenured generation to achive a minor pause goal")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  1999
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2000
  develop(bool, PSAdjustYoungGenForMajorPause, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2001
          "Adjust young generation to achive a major pause goal")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2002
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2003
  product(uintx, AdaptiveSizePolicyInitializingSteps, 20,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2004
          "Number of steps where heuristics is used before data is used")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2005
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2006
  develop(uintx, AdaptiveSizePolicyReadyThreshold, 5,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2007
          "Number of collections before the adaptive sizing is started")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2008
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2009
  product(uintx, AdaptiveSizePolicyOutputInterval, 0,                       \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2010
          "Collecton interval for printing information; zero => never")     \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2011
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2012
  product(bool, UseAdaptiveSizePolicyFootprintGoal, true,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2013
          "Use adaptive minimum footprint as a goal")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2014
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2015
  product(uintx, AdaptiveSizePolicyWeight, 10,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2016
          "Weight given to exponential resizing, between 0 and 100")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2017
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2018
  product(uintx, AdaptiveTimeWeight,       25,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2019
          "Weight given to time in adaptive policy, between 0 and 100")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2020
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2021
  product(uintx, PausePadding, 1,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2022
          "How much buffer to keep for pause time")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2023
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2024
  product(uintx, PromotedPadding, 3,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2025
          "How much buffer to keep for promotion failure")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2026
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2027
  product(uintx, SurvivorPadding, 3,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2028
          "How much buffer to keep for survivor overflow")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2029
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2030
  product(uintx, ThresholdTolerance, 10,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2031
          "Allowed collection cost difference between generations")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2032
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2033
  product(uintx, AdaptiveSizePolicyCollectionCostMargin, 50,                \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2034
          "If collection costs are within margin, reduce both by full "     \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2035
          "delta")                                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2036
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2037
  product(uintx, YoungGenerationSizeIncrement, 20,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2038
          "Adaptive size percentage change in young generation")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2039
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2040
  product(uintx, YoungGenerationSizeSupplement, 80,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2041
          "Supplement to YoungedGenerationSizeIncrement used at startup")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2042
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2043
  product(uintx, YoungGenerationSizeSupplementDecay, 8,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2044
          "Decay factor to YoungedGenerationSizeSupplement")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2045
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2046
  product(uintx, TenuredGenerationSizeIncrement, 20,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2047
          "Adaptive size percentage change in tenured generation")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2048
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2049
  product(uintx, TenuredGenerationSizeSupplement, 80,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2050
          "Supplement to TenuredGenerationSizeIncrement used at startup")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2051
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2052
  product(uintx, TenuredGenerationSizeSupplementDecay, 2,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2053
          "Decay factor to TenuredGenerationSizeIncrement")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2054
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  2055
  product(uintx, MaxGCPauseMillis, max_uintx,                               \
2741
34e2a243d69a 6490395: G1: Tidy up command line flags.
johnc
parents: 2570
diff changeset
  2056
          "Adaptive size policy maximum GC pause time goal in msec, "       \
34e2a243d69a 6490395: G1: Tidy up command line flags.
johnc
parents: 2570
diff changeset
  2057
          "or (G1 Only) the max. GC time per MMU time slice")               \
34e2a243d69a 6490395: G1: Tidy up command line flags.
johnc
parents: 2570
diff changeset
  2058
                                                                            \
5890
5766abbf8789 6949307: G1: raise a vm error, do not core dump, if target pause time and target interval are inconsistent
tonyp
parents: 5712
diff changeset
  2059
  product(uintx, GCPauseIntervalMillis, 0,                                  \
2741
34e2a243d69a 6490395: G1: Tidy up command line flags.
johnc
parents: 2570
diff changeset
  2060
          "Time slice for MMU specification")                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2061
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2062
  product(uintx, MaxGCMinorPauseMillis, max_uintx,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2063
          "Adaptive size policy maximum GC minor pause time goal in msec")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2064
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2065
  product(uintx, GCTimeRatio, 99,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2066
          "Adaptive size policy application time to GC time ratio")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2067
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2068
  product(uintx, AdaptiveSizeDecrementScaleFactor, 4,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2069
          "Adaptive size scale down factor for shrinking")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2070
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2071
  product(bool, UseAdaptiveSizeDecayMajorGCCost, true,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2072
          "Adaptive size decays the major cost for long major intervals")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2073
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2074
  product(uintx, AdaptiveSizeMajorGCDecayTimeScale, 10,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2075
          "Time scale over which major costs decay")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2076
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2077
  product(uintx, MinSurvivorRatio, 3,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2078
          "Minimum ratio of young generation/survivor space size")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2079
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2080
  product(uintx, InitialSurvivorRatio, 8,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2081
          "Initial ratio of eden/survivor space size")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2082
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2083
  product(uintx, BaseFootPrintEstimate, 256*M,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2084
          "Estimate of footprint other than Java Heap")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2085
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2086
  product(bool, UseGCOverheadLimit, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2087
          "Use policy to limit of proportion of time spent in GC "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2088
          "before an OutOfMemory error is thrown")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2089
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2090
  product(uintx, GCTimeLimit, 98,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2091
          "Limit of proportion of time spent in GC before an OutOfMemory"   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2092
          "error is thrown (used with GCHeapFreeLimit)")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2093
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2094
  product(uintx, GCHeapFreeLimit, 2,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2095
          "Minimum percentage of free space after a full GC before an "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2096
          "OutOfMemoryError is thrown (used with GCTimeLimit)")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2097
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2098
  develop(uintx, AdaptiveSizePolicyGCTimeLimitThreshold, 5,                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2099
          "Number of consecutive collections before gc time limit fires")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2100
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2101
  product(bool, PrintAdaptiveSizePolicy, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2102
          "Print information about AdaptiveSizePolicy")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2103
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2104
  product(intx, PrefetchCopyIntervalInBytes, -1,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2105
          "How far ahead to prefetch destination area (<= 0 means off)")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2106
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2107
  product(intx, PrefetchScanIntervalInBytes, -1,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2108
          "How far ahead to prefetch scan area (<= 0 means off)")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2109
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2110
  product(intx, PrefetchFieldsAhead, -1,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2111
          "How many fields ahead to prefetch in oop scan (<= 0 means off)") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2112
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2113
  diagnostic(bool, VerifyBeforeExit, trueInDebug,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2114
          "Verify system before exiting")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2115
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2116
  diagnostic(bool, VerifyBeforeGC, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2117
          "Verify memory system before GC")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2118
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2119
  diagnostic(bool, VerifyAfterGC, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2120
          "Verify memory system after GC")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2121
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2122
  diagnostic(bool, VerifyDuringGC, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2123
          "Verify memory system during GC (between phases)")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2124
                                                                            \
1422
9af8f4023912 6752248: G1: introduce parallel heap verification
tonyp
parents: 1421
diff changeset
  2125
  diagnostic(bool, GCParallelVerificationEnabled, true,                     \
9af8f4023912 6752248: G1: introduce parallel heap verification
tonyp
parents: 1421
diff changeset
  2126
          "Enable parallel memory system verification")                     \
9af8f4023912 6752248: G1: introduce parallel heap verification
tonyp
parents: 1421
diff changeset
  2127
                                                                            \
4637
af4d405aacc1 6896647: card marks can be deferred too long
ysr
parents: 4575
diff changeset
  2128
  diagnostic(bool, DeferInitialCardMark, false,                             \
af4d405aacc1 6896647: card marks can be deferred too long
ysr
parents: 4575
diff changeset
  2129
          "When +ReduceInitialCardMarks, explicitly defer any that "        \
af4d405aacc1 6896647: card marks can be deferred too long
ysr
parents: 4575
diff changeset
  2130
           "may arise from new_pre_store_barrier")                          \
af4d405aacc1 6896647: card marks can be deferred too long
ysr
parents: 4575
diff changeset
  2131
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2132
  diagnostic(bool, VerifyRememberedSets, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2133
          "Verify GC remembered sets")                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2134
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2135
  diagnostic(bool, VerifyObjectStartArray, true,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2136
          "Verify GC object start array if verify before/after")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2137
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2138
  product(bool, DisableExplicitGC, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2139
          "Tells whether calling System.gc() does a full GC")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2140
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2141
  notproduct(bool, CheckMemoryInitialization, false,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2142
          "Checks memory initialization")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2143
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2144
  product(bool, CollectGen0First, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2145
          "Collect youngest generation before each full GC")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2146
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2147
  diagnostic(bool, BindCMSThreadToCPU, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2148
          "Bind CMS Thread to CPU if possible")                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2149
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2150
  diagnostic(uintx, CPUForCMSThread, 0,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2151
          "When BindCMSThreadToCPU is true, the CPU to bind CMS thread to") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2152
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2153
  product(bool, BindGCTaskThreadsToCPUs, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2154
          "Bind GCTaskThreads to CPUs if possible")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2155
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2156
  product(bool, UseGCTaskAffinity, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2157
          "Use worker affinity when asking for GCTasks")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2158
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2159
  product(uintx, ProcessDistributionStride, 4,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2160
          "Stride through processors when distributing processes")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2161
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2162
  product(uintx, CMSCoordinatorYieldSleepCount, 10,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2163
          "number of times the coordinator GC thread will sleep while "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2164
          "yielding before giving up and resuming GC")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2165
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2166
  product(uintx, CMSYieldSleepCount, 0,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2167
          "number of times a GC thread (minus the coordinator) "            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2168
          "will sleep while yielding before giving up and resuming GC")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2169
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2170
  /* gc tracing */                                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2171
  manageable(bool, PrintGC, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2172
          "Print message at garbage collect")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2173
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2174
  manageable(bool, PrintGCDetails, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2175
          "Print more details at garbage collect")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2176
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2177
  manageable(bool, PrintGCDateStamps, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2178
          "Print date stamps at garbage collect")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2179
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2180
  manageable(bool, PrintGCTimeStamps, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2181
          "Print timestamps at garbage collect")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2182
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2183
  product(bool, PrintGCTaskTimeStamps, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2184
          "Print timestamps for individual gc worker thread tasks")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2185
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2186
  develop(intx, ConcGCYieldTimeout, 0,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2187
          "If non-zero, assert that GC threads yield within this # of ms.") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2188
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2189
  notproduct(bool, TraceMarkSweep, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2190
          "Trace mark sweep")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2191
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2192
  product(bool, PrintReferenceGC, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2193
          "Print times spent handling reference objects during GC "         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2194
          " (enabled only when PrintGCDetails)")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2195
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2196
  develop(bool, TraceReferenceGC, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2197
          "Trace handling of soft/weak/final/phantom references")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2198
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2199
  develop(bool, TraceFinalizerRegistration, false,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2200
         "Trace registration of final references")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2201
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2202
  notproduct(bool, TraceScavenge, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2203
          "Trace scavenge")                                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2204
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2205
  product_rw(bool, TraceClassLoading, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2206
          "Trace all classes loaded")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2207
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2208
  product(bool, TraceClassLoadingPreorder, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2209
          "Trace all classes loaded in order referenced (not loaded)")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2210
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2211
  product_rw(bool, TraceClassUnloading, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2212
          "Trace unloading of classes")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2213
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2214
  product_rw(bool, TraceLoaderConstraints, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2215
          "Trace loader constraints")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2216
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2217
  develop(bool, TraceClassLoaderData, false,                                \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2218
          "Trace class loader loader_data lifetime")                        \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2219
                                                                            \
15086
2bfd799e9147 8005082: NPG: Add specialized Metachunk sizes for reflection and anonymous classloaders
jmasa
parents: 14835
diff changeset
  2220
  product(uintx, InitialBootClassLoaderMetaspaceSize,                       \
2bfd799e9147 8005082: NPG: Add specialized Metachunk sizes for reflection and anonymous classloaders
jmasa
parents: 14835
diff changeset
  2221
          NOT_LP64(2200*K) LP64_ONLY(4*M),                                  \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2222
          "Initial size of the boot class loader data metaspace")           \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2223
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2224
  product(bool, TraceGen0Time, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2225
          "Trace accumulated time for Gen 0 collection")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2226
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2227
  product(bool, TraceGen1Time, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2228
          "Trace accumulated time for Gen 1 collection")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2229
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2230
  product(bool, PrintTenuringDistribution, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2231
          "Print tenuring age information")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2232
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2233
  product_rw(bool, PrintHeapAtGC, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2234
          "Print heap layout before and after each GC")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2235
                                                                            \
3191
dd3cc90b9951 6855834: G1: minimize the output when -XX:+PrintHeapAtGC is set
tonyp
parents: 2866
diff changeset
  2236
  product_rw(bool, PrintHeapAtGCExtended, false,                            \
dd3cc90b9951 6855834: G1: minimize the output when -XX:+PrintHeapAtGC is set
tonyp
parents: 2866
diff changeset
  2237
          "Prints extended information about the layout of the heap "       \
dd3cc90b9951 6855834: G1: minimize the output when -XX:+PrintHeapAtGC is set
tonyp
parents: 2866
diff changeset
  2238
          "when -XX:+PrintHeapAtGC is set")                                 \
dd3cc90b9951 6855834: G1: minimize the output when -XX:+PrintHeapAtGC is set
tonyp
parents: 2866
diff changeset
  2239
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2240
  product(bool, PrintHeapAtSIGBREAK, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2241
          "Print heap layout in response to SIGBREAK")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2242
                                                                            \
2141
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
  2243
  manageable(bool, PrintClassHistogramBeforeFullGC, false,                  \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
  2244
          "Print a class histogram before any major stop-world GC")         \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
  2245
                                                                            \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
  2246
  manageable(bool, PrintClassHistogramAfterFullGC, false,                   \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
  2247
          "Print a class histogram after any major stop-world GC")          \
e9a644aaff87 6797870: Add -XX:+{HeapDump,PrintClassHistogram}{Before,After}FullGC
ysr
parents: 2034
diff changeset
  2248
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2249
  manageable(bool, PrintClassHistogram, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2250
          "Print a histogram of class instances")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2251
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2252
  develop(bool, TraceWorkGang, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2253
          "Trace activities of work gangs")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2254
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2255
  product(bool, TraceParallelOldGCTasks, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2256
          "Trace multithreaded GC activity")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2257
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2258
  develop(bool, TraceBlockOffsetTable, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2259
          "Print BlockOffsetTable maps")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2260
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2261
  develop(bool, TraceCardTableModRefBS, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2262
          "Print CardTableModRefBS maps")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2263
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2264
  develop(bool, TraceGCTaskManager, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2265
          "Trace actions of the GC task manager")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2266
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2267
  develop(bool, TraceGCTaskQueue, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2268
          "Trace actions of the GC task queues")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2269
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  2270
  diagnostic(bool, TraceGCTaskThread, false,                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2271
          "Trace actions of the GC task threads")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2272
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2273
  product(bool, PrintParallelOldGCPhaseTimes, false,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2274
          "Print the time taken by each parallel old gc phase."             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2275
          "PrintGCDetails must also be enabled.")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2276
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2277
  develop(bool, TraceParallelOldGCMarkingPhase, false,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2278
          "Trace parallel old gc marking phase")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2279
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2280
  develop(bool, TraceParallelOldGCSummaryPhase, false,                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2281
          "Trace parallel old gc summary phase")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2282
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2283
  develop(bool, TraceParallelOldGCCompactionPhase, false,                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2284
          "Trace parallel old gc compaction phase")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2285
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2286
  develop(bool, TraceParallelOldGCDensePrefix, false,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2287
          "Trace parallel old gc dense prefix computation")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2288
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2289
  develop(bool, IgnoreLibthreadGPFault, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2290
          "Suppress workaround for libthread GP fault")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2291
                                                                            \
386
7f121b1192f2 6539517: CR 6186200 should be extended to perm gen allocation to prevent spurious OOM's from perm gen
apetrusenko
parents: 342
diff changeset
  2292
  product(bool, PrintJNIGCStalls, false,                                    \
7f121b1192f2 6539517: CR 6186200 should be extended to perm gen allocation to prevent spurious OOM's from perm gen
apetrusenko
parents: 342
diff changeset
  2293
          "Print diagnostic message when GC is stalled"                     \
7f121b1192f2 6539517: CR 6186200 should be extended to perm gen allocation to prevent spurious OOM's from perm gen
apetrusenko
parents: 342
diff changeset
  2294
          "by JNI critical section")                                        \
7f121b1192f2 6539517: CR 6186200 should be extended to perm gen allocation to prevent spurious OOM's from perm gen
apetrusenko
parents: 342
diff changeset
  2295
                                                                            \
9990
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2296
  /* GC log rotation setting */                                             \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2297
                                                                            \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2298
  product(bool, UseGCLogFileRotation, false,                                \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2299
          "Prevent large gclog file for long running app. "                 \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2300
          "Requires -Xloggc:<filename>")                                    \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2301
                                                                            \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2302
  product(uintx, NumberOfGCLogFiles, 0,                                     \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2303
          "Number of gclog files in rotation, "                             \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2304
          "Default: 0, no rotation")                                        \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2305
                                                                            \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2306
  product(uintx, GCLogFileSize, 0,                                          \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2307
          "GC log file size, Default: 0 bytes, no rotation "                \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2308
          "Only valid with UseGCLogFileRotation")                           \
c8683968c01b 6941923: RFE: Handling large log files produced by long running Java Applications
minqi
parents: 9968
diff changeset
  2309
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2310
  /* JVMTI heap profiling */                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2311
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2312
  diagnostic(bool, TraceJVMTIObjectTagging, false,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2313
          "Trace JVMTI object tagging calls")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2314
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2315
  diagnostic(bool, VerifyBeforeIteration, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2316
          "Verify memory system before JVMTI iteration")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2317
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2318
  /* compiler interface */                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2319
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2320
  develop(bool, CIPrintCompilerName, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2321
          "when CIPrint is active, print the name of the active compiler")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2322
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2323
  develop(bool, CIPrintCompileQueue, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2324
          "display the contents of the compile queue whenever a "           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2325
          "compilation is enqueued")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2326
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2327
  develop(bool, CIPrintRequests, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2328
          "display every request for compilation")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2329
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2330
  product(bool, CITime, false,                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2331
          "collect timing information for compilation")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2332
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2333
  develop(bool, CITimeEach, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2334
          "display timing information after each successful compilation")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2335
                                                                            \
13964
01a2b863cc61 7177003: C1: LogCompilation support
vlivanov
parents: 13925
diff changeset
  2336
  develop(bool, CICountOSR, false,                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2337
          "use a separate counter when assigning ids to osr compilations")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2338
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2339
  develop(bool, CICompileNatives, true,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2340
          "compile native methods if supported by the compiler")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2341
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2342
  develop_pd(bool, CICompileOSR,                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2343
          "compile on stack replacement methods if supported by the "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2344
          "compiler")                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2345
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2346
  develop(bool, CIPrintMethodCodes, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2347
          "print method bytecodes of the compiled code")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2348
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2349
  develop(bool, CIPrintTypeFlow, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2350
          "print the results of ciTypeFlow analysis")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2351
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2352
  develop(bool, CITraceTypeFlow, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2353
          "detailed per-bytecode tracing of ciTypeFlow analysis")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2354
                                                                            \
8870
119881dc9d0b 7024475: loop doesn't terminate when compiled
never
parents: 8728
diff changeset
  2355
  develop(intx, OSROnlyBCI, -1,                                             \
119881dc9d0b 7024475: loop doesn't terminate when compiled
never
parents: 8728
diff changeset
  2356
          "OSR only at this bci.  Negative values mean exclude that bci")   \
119881dc9d0b 7024475: loop doesn't terminate when compiled
never
parents: 8728
diff changeset
  2357
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2358
  /* compiler */                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2359
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2360
  product(intx, CICompilerCount, CI_COMPILER_COUNT,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2361
          "Number of compiler threads to run")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2362
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2363
  product(intx, CompilationPolicyChoice, 0,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2364
          "which compilation policy (0/1)")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2365
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2366
  develop(bool, UseStackBanging, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2367
          "use stack banging for stack overflow checks (required for "      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2368
          "proper StackOverflow handling; disable only to measure cost "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2369
          "of stackbanging)")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2370
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2371
  develop(bool, UseStrictFP, true,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2372
          "use strict fp if modifier strictfp is set")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2373
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2374
  develop(bool, GenerateSynchronizationCode, true,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2375
          "generate locking/unlocking code for synchronized methods and "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2376
          "monitors")                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2377
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2378
  develop(bool, GenerateCompilerNullChecks, true,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2379
          "Generate explicit null checks for loads/stores/calls")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2380
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2381
  develop(bool, GenerateRangeChecks, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2382
          "Generate range checks for array accesses")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2383
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2384
  develop_pd(bool, ImplicitNullChecks,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2385
          "generate code for implicit null checks")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2386
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2387
  product(bool, PrintSafepointStatistics, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2388
          "print statistics about safepoint synchronization")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2389
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2390
  product(intx, PrintSafepointStatisticsCount, 300,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2391
          "total number of safepoint statistics collected "                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2392
          "before printing them out")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2393
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2394
  product(intx, PrintSafepointStatisticsTimeout,  -1,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2395
          "print safepoint statistics only when safepoint takes"            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2396
          " more than PrintSafepointSatisticsTimeout in millis")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2397
                                                                            \
5086
ebccc0bb7b8e 6934758: Expose the break down of clean up task time during safepoint.
xlu
parents: 5039
diff changeset
  2398
  product(bool, TraceSafepointCleanupTime, false,                           \
ebccc0bb7b8e 6934758: Expose the break down of clean up task time during safepoint.
xlu
parents: 5039
diff changeset
  2399
          "print the break down of clean up tasks performed during"         \
ebccc0bb7b8e 6934758: Expose the break down of clean up task time during safepoint.
xlu
parents: 5039
diff changeset
  2400
          " safepoint")                                                     \
ebccc0bb7b8e 6934758: Expose the break down of clean up task time during safepoint.
xlu
parents: 5039
diff changeset
  2401
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2402
  product(bool, Inline, true,                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2403
          "enable inlining")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2404
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2405
  product(bool, ClipInlining, true,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2406
          "clip inlining if aggregate method exceeds DesiredMethodLimit")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2407
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2408
  develop(bool, UseCHA, true,                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2409
          "enable CHA")                                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2410
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2411
  product(bool, UseTypeProfile, true,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2412
          "Check interpreter profile for historically monomorphic calls")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2413
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2414
  notproduct(bool, TimeCompiler, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2415
          "time the compiler")                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2416
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2417
  diagnostic(bool, PrintInlining, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2418
          "prints inlining optimizations")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2419
                                                                            \
2255
54abdf3e1055 6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents: 2254
diff changeset
  2420
  product(bool, UsePopCountInstruction, false,                              \
54abdf3e1055 6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents: 2254
diff changeset
  2421
          "Use population count instruction")                               \
54abdf3e1055 6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents: 2254
diff changeset
  2422
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2423
  develop(bool, EagerInitialization, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2424
          "Eagerly initialize classes if possible")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2425
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2426
  develop(bool, TraceMethodReplacement, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2427
          "Print when methods are replaced do to recompilation")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2428
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2429
  develop(bool, PrintMethodFlushing, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2430
          "print the nmethods being flushed")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2431
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2432
  develop(bool, UseRelocIndex, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2433
         "use an index to speed random access to relocations")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2434
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2435
  develop(bool, StressCodeBuffers, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2436
         "Exercise code buffer expansion and other rare state changes")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2437
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2438
  diagnostic(bool, DebugNonSafepoints, trueInDebug,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2439
         "Generate extra debugging info for non-safepoints in nmethods")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2440
                                                                            \
10990
f71627d1b3dd 7108264: Fix for 7104173 is insufficient
dholmes
parents: 10828
diff changeset
  2441
  product(bool, PrintVMOptions, false,                                      \
4579
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2442
         "Print flags that appeared on the command line")                   \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2443
                                                                            \
2028
04fa713b25f9 6788376: allow to ignore unrecognized VM options
kvn
parents: 1671
diff changeset
  2444
  product(bool, IgnoreUnrecognizedVMOptions, false,                         \
04fa713b25f9 6788376: allow to ignore unrecognized VM options
kvn
parents: 1671
diff changeset
  2445
         "Ignore unrecognized VM options")                                  \
04fa713b25f9 6788376: allow to ignore unrecognized VM options
kvn
parents: 1671
diff changeset
  2446
                                                                            \
4579
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2447
  product(bool, PrintCommandLineFlags, false,                               \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2448
         "Print flags specified on command line or set by ergonomics")      \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2449
                                                                            \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2450
  product(bool, PrintFlagsInitial, false,                                   \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2451
         "Print all VM flags before argument processing and exit VM")       \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2452
                                                                            \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2453
  product(bool, PrintFlagsFinal, false,                                     \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2454
         "Print all VM flags after argument and ergonomic processing")      \
62478db2dc78 6914622: Print values of all flags for product VM
kvn
parents: 4489
diff changeset
  2455
                                                                            \
6438
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
  2456
  notproduct(bool, PrintFlagsWithComments, false,                           \
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
  2457
         "Print all VM flags with default values and descriptions and exit")\
ace4f8100e90 6979444: add command line option to print command line flags descriptions
ikrylov
parents: 6419
diff changeset
  2458
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2459
  diagnostic(bool, SerializeVMOutput, true,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2460
         "Use a mutex to serialize output to tty and hotspot.log")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2461
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2462
  diagnostic(bool, DisplayVMOutput, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2463
         "Display all VM output on the tty, independently of LogVMOutput")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2464
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2465
  diagnostic(bool, LogVMOutput, trueInDebug,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2466
         "Save VM output to hotspot.log, or to LogFile")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2467
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2468
  diagnostic(ccstr, LogFile, NULL,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2469
         "If LogVMOutput is on, save VM output to this file [hotspot.log]") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2470
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2471
  product(ccstr, ErrorFile, NULL,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2472
         "If an error occurs, save the error data to this file "            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2473
         "[default: ./hs_err_pid%p.log] (%p replaced with pid)")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2474
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2475
  product(bool, DisplayVMOutputToStderr, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2476
         "If DisplayVMOutput is true, display all VM output to stderr")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2477
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2478
  product(bool, DisplayVMOutputToStdout, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2479
         "If DisplayVMOutput is true, display all VM output to stdout")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2480
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2481
  product(bool, UseHeavyMonitors, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2482
          "use heavyweight instead of lightweight Java monitors")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2483
                                                                            \
13087
673ea6efaf18 7158800: Improve storage of symbol tables
coleenp
parents: 12781
diff changeset
  2484
  product(bool, PrintStringTableStatistics, false,                          \
673ea6efaf18 7158800: Improve storage of symbol tables
coleenp
parents: 12781
diff changeset
  2485
          "print statistics about the StringTable and SymbolTable")         \
673ea6efaf18 7158800: Improve storage of symbol tables
coleenp
parents: 12781
diff changeset
  2486
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2487
  notproduct(bool, PrintSymbolTableSizeHistogram, false,                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2488
          "print histogram of the symbol table")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2489
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2490
  notproduct(bool, ExitVMOnVerifyError, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2491
          "standard exit from VM if bytecode verify error "                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2492
          "(only in debug mode)")                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2493
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2494
  notproduct(ccstr, AbortVMOnException, NULL,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2495
          "Call fatal if this exception is thrown.  Example: "              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2496
          "java -XX:AbortVMOnException=java.lang.NullPointerException Foo") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2497
                                                                            \
6179
4846648c4b7b 6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
kvn
parents: 6062
diff changeset
  2498
  notproduct(ccstr, AbortVMOnExceptionMessage, NULL,                        \
4846648c4b7b 6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
kvn
parents: 6062
diff changeset
  2499
          "Call fatal if the exception pointed by AbortVMOnException "      \
4846648c4b7b 6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
kvn
parents: 6062
diff changeset
  2500
          "has this message.")                                              \
4846648c4b7b 6973308: Missing zero length check before repne scas in check_klass_subtype_slow_path()
kvn
parents: 6062
diff changeset
  2501
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2502
  develop(bool, DebugVtables, false,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2503
          "add debugging code to vtable dispatch")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2504
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2505
  develop(bool, PrintVtables, false,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2506
          "print vtables when printing klass")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2507
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2508
  notproduct(bool, PrintVtableStats, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2509
          "print vtables stats at end of run")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2510
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2511
  develop(bool, TraceCreateZombies, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2512
          "trace creation of zombie nmethods")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2513
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2514
  notproduct(bool, IgnoreLockingAssertions, false,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2515
          "disable locking assertions (for speed)")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2516
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2517
  product(bool, RangeCheckElimination, true,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2518
          "Split loop iterations to eliminate range checks")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2519
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2520
  develop_pd(bool, UncommonNullCast,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2521
          "track occurrences of null in casts; adjust compiler tactics")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2522
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2523
  develop(bool, TypeProfileCasts,  true,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2524
          "treat casts like calls for purposes of type profiling")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2525
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2526
  develop(bool, DelayCompilationDuringStartup, true,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2527
          "Delay invoking the compiler until main application class is "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2528
          "loaded")                                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2529
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2530
  develop(bool, CompileTheWorld, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2531
          "Compile all methods in all classes in bootstrap class path "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2532
          "(stress test)")                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2533
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2534
  develop(bool, CompileTheWorldPreloadClasses, true,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2535
          "Preload all classes used by a class before start loading")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2536
                                                                            \
4736
e091227926da 6919886: Sweep CodeCache more aggressively to reduce its usage for CompileTheWorld
kvn
parents: 4650
diff changeset
  2537
  notproduct(intx, CompileTheWorldSafepointInterval, 100,                   \
e091227926da 6919886: Sweep CodeCache more aggressively to reduce its usage for CompileTheWorld
kvn
parents: 4650
diff changeset
  2538
          "Force a safepoint every n compiles so sweeper can keep up")      \
e091227926da 6919886: Sweep CodeCache more aggressively to reduce its usage for CompileTheWorld
kvn
parents: 4650
diff changeset
  2539
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2540
  develop(bool, FillDelaySlots, true,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2541
          "Fill delay slots (on SPARC only)")                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2542
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2543
  develop(bool, TimeLivenessAnalysis, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2544
          "Time computation of bytecode liveness analysis")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2545
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2546
  develop(bool, TraceLivenessGen, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2547
          "Trace the generation of liveness analysis information")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2548
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2549
  notproduct(bool, TraceLivenessQuery, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2550
          "Trace queries of liveness analysis information")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2551
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2552
  notproduct(bool, CollectIndexSetStatistics, false,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2553
          "Collect information about IndexSets")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2554
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2555
  develop(bool, UseLoopSafepoints, true,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2556
          "Generate Safepoint nodes in every loop")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2557
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2558
  develop(intx, FastAllocateSizeLimit, 128*K,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2559
          /* Note:  This value is zero mod 1<<13 for a cheap sparc set. */  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2560
          "Inline allocations larger than this in doublewords must go slow")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2561
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2562
  product(bool, AggressiveOpts, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2563
          "Enable aggressive optimizations - see arguments.cpp")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2564
                                                                            \
618
9641c2c8f977 6714404: Add UseStringCache switch to enable String caching under AggressiveOpts
kvn
parents: 600
diff changeset
  2565
  product(bool, UseStringCache, false,                                      \
9641c2c8f977 6714404: Add UseStringCache switch to enable String caching under AggressiveOpts
kvn
parents: 600
diff changeset
  2566
          "Enable String cache capabilities on String.java")                \
9641c2c8f977 6714404: Add UseStringCache switch to enable String caching under AggressiveOpts
kvn
parents: 600
diff changeset
  2567
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2568
  /* statistics */                                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2569
  develop(bool, CountCompiledCalls, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2570
          "counts method invocations")                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2571
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2572
  notproduct(bool, CountRuntimeCalls, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2573
          "counts VM runtime calls")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2574
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2575
  develop(bool, CountJNICalls, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2576
          "counts jni method invocations")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2577
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2578
  notproduct(bool, CountJVMCalls, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2579
          "counts jvm method invocations")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2580
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2581
  notproduct(bool, CountRemovableExceptions, false,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2582
          "count exceptions that could be replaced by branches due to "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2583
          "inlining")                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2584
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2585
  notproduct(bool, ICMissHistogram, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2586
          "produce histogram of IC misses")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2587
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2588
  notproduct(bool, PrintClassStatistics, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2589
          "prints class statistics at end of run")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2590
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2591
  notproduct(bool, PrintMethodStatistics, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2592
          "prints method statistics at end of run")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2593
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2594
  /* interpreter */                                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2595
  develop(bool, ClearInterpreterLocals, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2596
          "Always clear local variables of interpreter activations upon "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2597
          "entry")                                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2598
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2599
  product_pd(bool, RewriteBytecodes,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2600
          "Allow rewriting of bytecodes (bytecodes are not immutable)")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2601
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2602
  product_pd(bool, RewriteFrequentPairs,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2603
          "Rewrite frequently used bytecode pairs into a single bytecode")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2604
                                                                            \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
  2605
  diagnostic(bool, PrintInterpreter, false,                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2606
          "Prints the generated interpreter code")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2607
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2608
  product(bool, UseInterpreter, true,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2609
          "Use interpreter for non-compiled methods")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2610
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2611
  develop(bool, UseFastSignatureHandlers, true,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2612
          "Use fast signature handlers for native calls")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2613
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2614
  product(bool, UseLoopCounter, true,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2615
          "Increment invocation counter on backward branch")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2616
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2617
  product(bool, UseFastEmptyMethods, true,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2618
          "Use fast method entry code for empty methods")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2619
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2620
  product(bool, UseFastAccessorMethods, true,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2621
          "Use fast method entry code for accessor methods")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2622
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2623
  product_pd(bool, UseOnStackReplacement,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2624
           "Use on stack replacement, calls runtime if invoc. counter "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2625
           "overflows in loop")                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2626
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2627
  notproduct(bool, TraceOnStackReplacement, false,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2628
          "Trace on stack replacement")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2629
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2630
  product_pd(bool, PreferInterpreterNativeStubs,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2631
          "Use always interpreter stubs for native methods invoked via "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2632
          "interpreter")                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2633
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2634
  develop(bool, CountBytecodes, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2635
          "Count number of bytecodes executed")                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2636
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2637
  develop(bool, PrintBytecodeHistogram, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2638
          "Print histogram of the executed bytecodes")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2639
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2640
  develop(bool, PrintBytecodePairHistogram, false,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2641
          "Print histogram of the executed bytecode pairs")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2642
                                                                            \
347
df859fcca515 6667042: PrintAssembly option does not work without special plugin
jrose
parents: 249
diff changeset
  2643
  diagnostic(bool, PrintSignatureHandlers, false,                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2644
          "Print code generated for native method signature handlers")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2645
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2646
  develop(bool, VerifyOops, false,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2647
          "Do plausibility checks for oops")                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2648
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2649
  develop(bool, CheckUnhandledOops, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2650
          "Check for unhandled oops in VM code")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2651
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2652
  develop(bool, VerifyJNIFields, trueInDebug,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2653
          "Verify jfieldIDs for instance fields")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2654
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2655
  notproduct(bool, VerifyJNIEnvThread, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2656
          "Verify JNIEnv.thread == Thread::current() when entering VM "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2657
          "from JNI")                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2658
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2659
  develop(bool, VerifyFPU, false,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2660
          "Verify FPU state (check for NaN's, etc.)")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2661
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2662
  develop(bool, VerifyThread, false,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2663
          "Watch the thread register for corruption (SPARC only)")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2664
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2665
  develop(bool, VerifyActivationFrameSize, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2666
          "Verify that activation frame didn't become smaller than its "    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2667
          "minimal size")                                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2668
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2669
  develop(bool, TraceFrequencyInlining, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2670
          "Trace frequency based inlining")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2671
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2672
  develop_pd(bool, InlineIntrinsics,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2673
           "Inline intrinsics that can be statically resolved")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2674
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2675
  product_pd(bool, ProfileInterpreter,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2676
           "Profile at the bytecode level during interpretation")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2677
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2678
  develop_pd(bool, ProfileTraps,                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2679
          "Profile deoptimization traps at the bytecode level")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2680
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2681
  product(intx, ProfileMaturityPercentage, 20,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2682
          "number of method invocations/branches (expressed as % of "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2683
          "CompileThreshold) before using the method's profile")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2684
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2685
  develop(bool, PrintMethodData, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2686
           "Print the results of +ProfileInterpreter at end of run")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2687
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2688
  develop(bool, VerifyDataPointer, trueInDebug,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2689
          "Verify the method data pointer during interpreter profiling")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2690
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2691
  develop(bool, VerifyCompiledCode, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2692
          "Include miscellaneous runtime verifications in nmethod code; "   \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2693
          "default off because it disturbs nmethod size heuristics")        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2694
                                                                            \
4489
514173c9a0c2 6361589: Print out stack trace for target thread of GC crash
minqi
parents: 4434
diff changeset
  2695
  notproduct(bool, CrashGCForDumpingJavaThread, false,                      \
514173c9a0c2 6361589: Print out stack trace for target thread of GC crash
minqi
parents: 4434
diff changeset
  2696
          "Manually make GC thread crash then dump java stack trace;  "     \
514173c9a0c2 6361589: Print out stack trace for target thread of GC crash
minqi
parents: 4434
diff changeset
  2697
          "Test only")                                                      \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2698
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2699
  /* compilation */                                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2700
  product(bool, UseCompiler, true,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2701
          "use compilation")                                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2702
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2703
  develop(bool, TraceCompilationPolicy, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2704
          "Trace compilation policy")                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2705
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2706
  develop(bool, TimeCompilationPolicy, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2707
          "Time the compilation policy")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2708
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2709
  product(bool, UseCounterDecay, true,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2710
           "adjust recompilation counters")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2711
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2712
  develop(intx, CounterHalfLifeTime,    30,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2713
          "half-life time of invocation counters (in secs)")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2714
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2715
  develop(intx, CounterDecayMinIntervalLength,   500,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2716
          "Min. ms. between invocation of CounterDecay")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2717
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2718
  product(bool, AlwaysCompileLoopMethods, false,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2719
          "when using recompilation, never interpret methods "              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2720
          "containing loops")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2721
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2722
  product(bool, DontCompileHugeMethods, true,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2723
          "don't compile methods > HugeMethodLimit")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2724
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2725
  /* Bytecode escape analysis estimation. */                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2726
  product(bool, EstimateArgEscape, true,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2727
          "Analyze bytecodes to estimate escape state of arguments")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2728
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2729
  product(intx, BCEATraceLevel, 0,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2730
          "How much tracing to do of bytecode escape analysis estimates")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2731
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2732
  product(intx, MaxBCEAEstimateLevel, 5,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2733
          "Maximum number of nested calls that are analyzed by BC EA.")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2734
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2735
  product(intx, MaxBCEAEstimateSize, 150,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2736
          "Maximum bytecode size of a method to be analyzed by BC EA.")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2737
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2738
  product(intx,  AllocatePrefetchStyle, 1,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2739
          "0 = no prefetch, "                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2740
          "1 = prefetch instructions for each allocation, "                 \
5251
f86f7a86d761 6940726: Use BIS instruction for allocation prefetch on Sparc
kvn
parents: 5250
diff changeset
  2741
          "2 = use TLAB watermark to gate allocation prefetch, "            \
f86f7a86d761 6940726: Use BIS instruction for allocation prefetch on Sparc
kvn
parents: 5250
diff changeset
  2742
          "3 = use BIS instruction on Sparc for allocation prefetch")       \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2743
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2744
  product(intx,  AllocatePrefetchDistance, -1,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2745
          "Distance to prefetch ahead of allocation pointer")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2746
                                                                            \
10267
8bdeec886dc4 7079329: Adjust allocation prefetching for T4
kvn
parents: 10252
diff changeset
  2747
  product(intx,  AllocatePrefetchLines, 3,                                  \
8bdeec886dc4 7079329: Adjust allocation prefetching for T4
kvn
parents: 10252
diff changeset
  2748
          "Number of lines to prefetch ahead of array allocation pointer")  \
8bdeec886dc4 7079329: Adjust allocation prefetching for T4
kvn
parents: 10252
diff changeset
  2749
                                                                            \
8bdeec886dc4 7079329: Adjust allocation prefetching for T4
kvn
parents: 10252
diff changeset
  2750
  product(intx,  AllocateInstancePrefetchLines, 1,                          \
8bdeec886dc4 7079329: Adjust allocation prefetching for T4
kvn
parents: 10252
diff changeset
  2751
          "Number of lines to prefetch ahead of instance allocation pointer") \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2752
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2753
  product(intx,  AllocatePrefetchStepSize, 16,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2754
          "Step size in bytes of sequential prefetch instructions")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2755
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2756
  product(intx,  AllocatePrefetchInstr, 0,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2757
          "Prefetch instruction to prefetch ahead of allocation pointer")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2758
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2759
  /* deoptimization */                                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2760
  develop(bool, TraceDeoptimization, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2761
          "Trace deoptimization")                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2762
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2763
  develop(bool, DebugDeoptimization, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2764
          "Tracing various information while debugging deoptimization")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2765
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2766
  product(intx, SelfDestructTimer, 0,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2767
          "Will cause VM to terminate after a given time (in minutes) "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2768
          "(0 means off)")                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2769
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2770
  product(intx, MaxJavaStackTraceDepth, 1024,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2771
          "Max. no. of lines in the stack trace for Java exceptions "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2772
          "(0 means all)")                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2773
                                                                            \
9429
4569a4c199da 7005503: Make GuaranteedSafepointInterval a diagnostic flag
kevinw
parents: 9182
diff changeset
  2774
  NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000,          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2775
          "Guarantee a safepoint (at least) every so many milliseconds "    \
8107
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  2776
          "(0 means none)"))                                                \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  2777
                                                                            \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  2778
  EMBEDDED_ONLY(product(intx, GuaranteedSafepointInterval, 0,               \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  2779
          "Guarantee a safepoint (at least) every so many milliseconds "    \
78e5bd944384 7016023: Enable building ARM and PPC from src/closed repository
bobv
parents: 8076
diff changeset
  2780
          "(0 means none)"))                                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2781
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2782
  product(intx, SafepointTimeoutDelay, 10000,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2783
          "Delay in milliseconds for option SafepointTimeout")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2784
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  2785
  product(intx, NmethodSweepFraction, 16,                                   \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2786
          "Number of invocations of sweeper to cover all nmethods")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2787
                                                                            \
5533
e8d9ff82ec62 6950075: nmethod sweeper should operate concurrently
never
parents: 5426
diff changeset
  2788
  product(intx, NmethodSweepCheckInterval, 5,                               \
e8d9ff82ec62 6950075: nmethod sweeper should operate concurrently
never
parents: 5426
diff changeset
  2789
          "Compilers wake up every n seconds to possibly sweep nmethods")   \
e8d9ff82ec62 6950075: nmethod sweeper should operate concurrently
never
parents: 5426
diff changeset
  2790
                                                                            \
9942
2e86734ba620 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
never
parents: 9640
diff changeset
  2791
  notproduct(bool, LogSweeper, false,                                       \
2e86734ba620 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
never
parents: 9640
diff changeset
  2792
            "Keep a ring buffer of sweeper activity")                       \
2e86734ba620 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
never
parents: 9640
diff changeset
  2793
                                                                            \
2e86734ba620 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
never
parents: 9640
diff changeset
  2794
  notproduct(intx, SweeperLogEntries, 1024,                                 \
2e86734ba620 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
never
parents: 9640
diff changeset
  2795
            "Number of records in the ring buffer of sweeper activity")     \
2e86734ba620 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
never
parents: 9640
diff changeset
  2796
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2797
  notproduct(intx, MemProfilingInterval, 500,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2798
          "Time between each invocation of the MemProfiler")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2799
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2800
  develop(intx, MallocCatchPtr, -1,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2801
          "Hit breakpoint when mallocing/freeing this pointer")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2802
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2803
  notproduct(intx, AssertRepeat, 1,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2804
          "number of times to evaluate expression in assert "               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2805
          "(to estimate overhead); only works with -DUSE_REPEATED_ASSERTS") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2806
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2807
  notproduct(ccstrlist, SuppressErrorAt, "",                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2808
          "List of assertions (file:line) to muzzle")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2809
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2810
  notproduct(uintx, HandleAllocationLimit, 1024,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2811
          "Threshold for HandleMark allocation when +TraceHandleAllocation "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2812
          "is used")                                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2813
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2814
  develop(uintx, TotalHandleAllocationLimit, 1024,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2815
          "Threshold for total handle allocation when "                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2816
          "+TraceHandleAllocation is used")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2817
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2818
  develop(intx, StackPrintLimit, 100,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2819
          "number of stack frames to print in VM-level stack dump")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2820
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2821
  notproduct(intx, MaxElementPrintSize, 256,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2822
          "maximum number of elements to print")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2823
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2824
  notproduct(intx, MaxSubklassPrintSize, 4,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2825
          "maximum number of subklasses to print when printing klass")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2826
                                                                            \
4586
f1c484fca023 6912063: inlining parameters need to be adjusted for some uses of the JVM
jrose
parents: 4579
diff changeset
  2827
  product(intx, MaxInlineLevel, 9,                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2828
          "maximum number of nested calls that are inlined")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2829
                                                                            \
4586
f1c484fca023 6912063: inlining parameters need to be adjusted for some uses of the JVM
jrose
parents: 4579
diff changeset
  2830
  product(intx, MaxRecursiveInlineLevel, 1,                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2831
          "maximum number of nested recursive calls that are inlined")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2832
                                                                            \
2342
9a1260c3679d 6821700: tune VM flags for peak performance
kvn
parents: 2259
diff changeset
  2833
  product_pd(intx, InlineSmallCode,                                         \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2834
          "Only inline already compiled methods if their code size is "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2835
          "less than this")                                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2836
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2837
  product(intx, MaxInlineSize, 35,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2838
          "maximum bytecode size of a method to be inlined")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2839
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2840
  product_pd(intx, FreqInlineSize,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2841
          "maximum bytecode size of a frequent method to be inlined")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2842
                                                                            \
4586
f1c484fca023 6912063: inlining parameters need to be adjusted for some uses of the JVM
jrose
parents: 4579
diff changeset
  2843
  product(intx, MaxTrivialSize, 6,                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2844
          "maximum bytecode size of a trivial method to be inlined")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2845
                                                                            \
4586
f1c484fca023 6912063: inlining parameters need to be adjusted for some uses of the JVM
jrose
parents: 4579
diff changeset
  2846
  product(intx, MinInliningThreshold, 250,                                  \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2847
          "min. invocation count a method needs to have to be inlined")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2848
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2849
  develop(intx, MethodHistogramCutoff, 100,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2850
          "cutoff value for method invoc. histogram (+CountCalls)")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2851
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2852
  develop(intx, ProfilerNumberOfInterpretedMethods, 25,                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2853
          "# of interpreted methods to show in profile")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2854
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2855
  develop(intx, ProfilerNumberOfCompiledMethods, 25,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2856
          "# of compiled methods to show in profile")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2857
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2858
  develop(intx, ProfilerNumberOfStubMethods, 25,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2859
          "# of stub methods to show in profile")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2860
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2861
  develop(intx, ProfilerNumberOfRuntimeStubNodes, 25,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2862
          "# of runtime stub nodes to show in profile")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2863
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2864
  product(intx, ProfileIntervalsTicks, 100,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2865
          "# of ticks between printing of interval profile "                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2866
          "(+ProfileIntervals)")                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2867
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2868
  notproduct(intx, ScavengeALotInterval,     1,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2869
          "Interval between which scavenge will occur with +ScavengeALot")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2870
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2871
  notproduct(intx, FullGCALotInterval,     1,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2872
          "Interval between which full gc will occur with +FullGCALot")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2873
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2874
  notproduct(intx, FullGCALotStart,     0,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2875
          "For which invocation to start FullGCAlot")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2876
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2877
  notproduct(intx, FullGCALotDummies,  32*K,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2878
          "Dummy object allocated with +FullGCALot, forcing all objects "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2879
          "to move")                                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2880
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2881
  develop(intx, DontYieldALotInterval,    10,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2882
          "Interval between which yields will be dropped (milliseconds)")   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2883
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2884
  develop(intx, MinSleepInterval,     1,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2885
          "Minimum sleep() interval (milliseconds) when "                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2886
          "ConvertSleepToYield is off (used for SOLARIS)")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2887
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2888
  develop(intx, ProfilerPCTickThreshold,    15,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2889
          "Number of ticks in a PC buckets to be a hotspot")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2890
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2891
  notproduct(intx, DeoptimizeALotInterval,     5,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2892
          "Number of exits until DeoptimizeALot kicks in")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2893
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2894
  notproduct(intx, ZombieALotInterval,     5,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2895
          "Number of exits until ZombieALot kicks in")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2896
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2897
  develop(bool, StressNonEntrant, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2898
          "Mark nmethods non-entrant at registration")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2899
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2900
  diagnostic(intx, MallocVerifyInterval,     0,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2901
          "if non-zero, verify C heap after every N calls to "              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2902
          "malloc/realloc/free")                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2903
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2904
  diagnostic(intx, MallocVerifyStart,     0,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2905
          "if non-zero, start verifying C heap after Nth call to "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2906
          "malloc/realloc/free")                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2907
                                                                            \
16428
1b55a8d558b8 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 15922
diff changeset
  2908
  diagnostic(uintx, MallocMaxTestWords,     0,                              \
1b55a8d558b8 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 15922
diff changeset
  2909
          "if non-zero, max # of Words that malloc/realloc can allocate "   \
1b55a8d558b8 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 15922
diff changeset
  2910
          "(for testing only)")                                             \
1b55a8d558b8 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 15922
diff changeset
  2911
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  2912
  product(intx, TypeProfileWidth,     2,                                    \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2913
          "number of receiver types to record in call/cast profile")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2914
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2915
  develop(intx, BciProfileWidth,      2,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2916
          "number of return bci's to record in ret profile")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2917
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2918
  product(intx, PerMethodRecompilationCutoff, 400,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2919
          "After recompiling N times, stay in the interpreter (-1=>'Inf')") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2920
                                                                            \
4754
8aef16f24e16 6614597: Performance variability in jvm2008 xml.validation
kvn
parents: 4750
diff changeset
  2921
  product(intx, PerBytecodeRecompilationCutoff, 200,                        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2922
          "Per-BCI limit on repeated recompilation (-1=>'Inf')")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2923
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2924
  product(intx, PerMethodTrapLimit,  100,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2925
          "Limit on traps (of one kind) in a method (includes inlines)")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2926
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2927
  product(intx, PerBytecodeTrapLimit,  4,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2928
          "Limit on traps (of one kind) at a particular BCI")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2929
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2930
  develop(intx, InlineFrequencyRatio,    20,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2931
          "Ratio of call site execution to caller method invocation")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2932
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2933
  develop_pd(intx, InlineFrequencyCount,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2934
          "Count of call site execution necessary to trigger frequent "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2935
          "inlining")                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2936
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2937
  develop(intx, InlineThrowCount,    50,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2938
          "Force inlining of interpreted methods that throw this often")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2939
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2940
  develop(intx, InlineThrowMaxSize,   200,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2941
          "Force inlining of throwing methods smaller than this")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2942
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2943
  develop(intx, ProfilerNodeSize,  1024,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2944
          "Size in K to allocate for the Profile Nodes of each thread")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2945
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2946
  product_pd(intx, PreInflateSpin,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2947
          "Number of times to spin wait before inflation")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2948
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2949
  /* gc parameters */                                                       \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2950
  product(uintx, InitialHeapSize, 0,                                        \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2951
          "Initial heap size (in bytes); zero means OldSize + NewSize")     \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2952
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2953
  product(uintx, MaxHeapSize, ScaleForWordSize(96*M),                       \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2954
          "Maximum heap size (in bytes)")                                   \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2955
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2956
  product(uintx, OldSize, ScaleForWordSize(4*M),                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2957
          "Initial tenured generation size (in bytes)")                     \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2958
                                                                            \
5038
de3fb1c2d510 6923123: Hotspot refuses to start when -Xmx4m or -Xms4m is specified
phh
parents: 4759
diff changeset
  2959
  product(uintx, NewSize, ScaleForWordSize(1*M),                            \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2960
          "Initial new generation size (in bytes)")                         \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2961
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2962
  product(uintx, MaxNewSize, max_uintx,                                     \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2963
          "Maximum new generation size (in bytes), max_uintx means set "    \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2964
          "ergonomically")                                                  \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2965
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2966
  product(uintx, PretenureSizeThreshold, 0,                                 \
4434
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2967
          "Maximum size in bytes of objects allocated in DefNew "           \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2968
          "generation; zero means no maximum")                              \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2969
                                                                            \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2970
  product(uintx, TLABSize, 0,                                               \
4b41e5b42f81 6887571: Increase default heap config sizes
phh
parents: 4013
diff changeset
  2971
          "Starting TLAB size (in bytes); zero means set ergonomically")    \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2972
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2973
  product(uintx, MinTLABSize, 2*K,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2974
          "Minimum allowed TLAB size (in bytes)")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2975
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2976
  product(uintx, TLABAllocationWeight, 35,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2977
          "Allocation averaging weight")                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2978
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2979
  product(uintx, TLABWasteTargetPercent, 1,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2980
          "Percentage of Eden that can be wasted")                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2981
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2982
  product(uintx, TLABRefillWasteFraction,    64,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2983
          "Max TLAB waste at a refill (internal fragmentation)")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2984
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2985
  product(uintx, TLABWasteIncrement,    4,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2986
          "Increment allowed waste at slow allocation")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2987
                                                                            \
15605
bf7de87bbe3a 8006432: Ratio flags should be unsigned
jwilhelm
parents: 15604
diff changeset
  2988
  product(uintx, SurvivorRatio, 8,                                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2989
          "Ratio of eden/survivor space size")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2990
                                                                            \
15605
bf7de87bbe3a 8006432: Ratio flags should be unsigned
jwilhelm
parents: 15604
diff changeset
  2991
  product(uintx, NewRatio, 2,                                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2992
          "Ratio of new/old generation sizes")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2993
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2994
  product_pd(uintx, NewSizeThreadIncrease,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2995
          "Additional size added to desired new generation size per "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2996
          "non-daemon thread (in bytes)")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  2997
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2998
  product_pd(uintx, MetaspaceSize,                                          \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  2999
          "Initial size of Metaspaces (in bytes)")                          \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3000
                                                                            \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3001
  product(uintx, MaxMetaspaceSize, max_uintx,                               \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3002
          "Maximum size of Metaspaces (in bytes)")                          \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3003
                                                                            \
13739
35cd081a64ea 7196103: NPG: Unable to allocate bit map for parallel garbage collection for the requested heap size
coleenp
parents: 13728
diff changeset
  3004
  product(uintx, ClassMetaspaceSize, 2*M,                                   \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3005
          "Maximum size of InstanceKlass area in Metaspace used for "       \
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3006
          "UseCompressedKlassPointers")                                     \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3007
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3008
  product(uintx, MinHeapFreeRatio,    40,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3009
          "Min percentage of heap free after GC to avoid expansion")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3010
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3011
  product(uintx, MaxHeapFreeRatio,    70,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3012
          "Max percentage of heap free after GC to avoid shrinking")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3013
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3014
  product(intx, SoftRefLRUPolicyMSPerMB, 1000,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3015
          "Number of milliseconds per MB of free space in the heap")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3016
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3017
  product(uintx, MinHeapDeltaBytes, ScaleForWordSize(128*K),                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3018
          "Min change in heap space due to GC (in bytes)")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3019
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  3020
  product(uintx, MinMetaspaceExpansion, ScaleForWordSize(256*K),            \
15610
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3021
          "Min expansion of Metaspace (in bytes)")                          \
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3022
                                                                            \
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3023
  product(uintx, MinMetaspaceFreeRatio,    40,                              \
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3024
          "Min percentage of Metaspace free after GC to avoid expansion")   \
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3025
                                                                            \
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3026
  product(uintx, MaxMetaspaceFreeRatio,    70,                              \
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3027
          "Max percentage of Metaspace free after GC to avoid shrinking")   \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3028
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  3029
  product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M),              \
15610
528d799702c7 8005452: NPG: Create new flags for Metaspace resizing policy
jmasa
parents: 15605
diff changeset
  3030
          "Max expansion of Metaspace without full GC (in bytes)")          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3031
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3032
  product(intx, QueuedAllocationWarningCount, 0,                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3033
          "Number of times an allocation that queues behind a GC "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3034
          "will retry before printing a warning")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3035
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3036
  diagnostic(uintx, VerifyGCStartAt,   0,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3037
          "GC invoke count where +VerifyBefore/AfterGC kicks in")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3038
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3039
  diagnostic(intx, VerifyGCLevel,     0,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3040
          "Generation level at which to start +VerifyBefore/AfterGC")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3041
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  3042
  product(uintx, MaxTenuringThreshold,    15,                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3043
          "Maximum value for tenuring threshold")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3044
                                                                            \
13925
37f75ba502b1 8000351: Tenuring threshold should be unsigned
jwilhelm
parents: 13924
diff changeset
  3045
  product(uintx, InitialTenuringThreshold,    7,                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3046
          "Initial value for tenuring threshold")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3047
                                                                            \
15605
bf7de87bbe3a 8006432: Ratio flags should be unsigned
jwilhelm
parents: 15604
diff changeset
  3048
  product(uintx, TargetSurvivorRatio,    50,                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3049
          "Desired percentage of survivor space used after scavenge")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3050
                                                                            \
1557
13878a2edfef 6765804: GC "dead ratios" should be unsigned
jcoomes
parents: 1438
diff changeset
  3051
  product(uintx, MarkSweepDeadRatio,     5,                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3052
          "Percentage (0-100) of the old gen allowed as dead wood."         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3053
          "Serial mark sweep treats this as both the min and max value."    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3054
          "CMS uses this value only if it falls back to mark sweep."        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3055
          "Par compact uses a variable scale based on the density of the"   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3056
          "generation and treats this as the max value when the heap is"    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3057
          "either completely full or completely empty.  Par compact also"   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3058
          "has a smaller default value; see arguments.cpp.")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3059
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3060
  product(intx, MarkSweepAlwaysCompactCount,     4,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3061
          "How often should we fully compact the heap (ignoring the dead "  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3062
          "space parameters)")                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3063
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3064
  product(intx, PrintCMSStatistics, 0,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3065
          "Statistics for CMS")                                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3066
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3067
  product(bool, PrintCMSInitiationStatistics, false,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3068
          "Statistics for initiating a CMS collection")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3069
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3070
  product(intx, PrintFLSStatistics, 0,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3071
          "Statistics for CMS' FreeListSpace")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3072
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3073
  product(intx, PrintFLSCensus, 0,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3074
          "Census for CMS' FreeListSpace")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3075
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3076
  develop(uintx, GCExpandToAllocateDelayMillis, 0,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3077
          "Delay in ms between expansion and allocation")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3078
                                                                            \
13924
159131321ed4 7199349: NPG: PS: Crash seen in jprt
jmasa
parents: 13861
diff changeset
  3079
  develop(uintx, GCWorkerDelayMillis, 0,                                    \
159131321ed4 7199349: NPG: PS: Crash seen in jprt
jmasa
parents: 13861
diff changeset
  3080
          "Delay in ms in scheduling GC workers")                           \
159131321ed4 7199349: NPG: PS: Crash seen in jprt
jmasa
parents: 13861
diff changeset
  3081
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3082
  product(intx, DeferThrSuspendLoopCount,     4000,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3083
          "(Unstable) Number of times to iterate in safepoint loop "        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3084
          " before blocking VM threads ")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3085
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3086
  product(intx, DeferPollingPageLoopCount,     -1,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3087
          "(Unsafe,Unstable) Number of iterations in safepoint loop "       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3088
          "before changing safepoint polling page to RO ")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3089
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3090
  product(intx, SafepointSpinBeforeYield, 2000,  "(Unstable)")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3091
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3092
  product(bool, PSChunkLargeArrays, true,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3093
          "true: process large arrays in chunks")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3094
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3095
  product(uintx, GCDrainStackTargetSize, 64,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3096
          "how many entries we'll try to leave on the stack during "        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3097
          "parallel GC")                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3098
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3099
  /* stack parameters */                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3100
  product_pd(intx, StackYellowPages,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3101
          "Number of yellow zone (recoverable overflows) pages")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3102
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3103
  product_pd(intx, StackRedPages,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3104
          "Number of red zone (unrecoverable overflows) pages")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3105
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3106
  product_pd(intx, StackShadowPages,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3107
          "Number of shadow zone (for overflow checking) pages"             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3108
          " this should exceed the depth of the VM and native call stack")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3109
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3110
  product_pd(intx, ThreadStackSize,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3111
          "Thread Stack Size (in Kbytes)")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3112
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3113
  product_pd(intx, VMThreadStackSize,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3114
          "Non-Java Thread Stack Size (in Kbytes)")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3115
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3116
  product_pd(intx, CompilerThreadStackSize,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3117
          "Compiler Thread Stack Size (in Kbytes)")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3118
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3119
  develop_pd(uintx, JVMInvokeMethodSlack,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3120
          "Stack space (bytes) required for JVM_InvokeMethod to complete")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3121
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3122
  product(uintx, ThreadSafetyMargin, 50*M,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3123
          "Thread safety margin is used on fixed-stack LinuxThreads (on "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3124
          "Linux/x86 only) to prevent heap-stack collision. Set to 0 to "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3125
          "disable this feature")                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3126
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3127
  /* code cache parameters */                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3128
  develop(uintx, CodeCacheSegmentSize, 64,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3129
          "Code cache segment size (in bytes) - smallest unit of "          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3130
          "allocation")                                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3131
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3132
  develop_pd(intx, CodeEntryAlignment,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3133
          "Code entry alignment for generated code (in bytes)")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3134
                                                                            \
5249
5cac34e6fe54 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 5235
diff changeset
  3135
  product_pd(intx, OptoLoopAlignment,                                       \
5cac34e6fe54 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 5235
diff changeset
  3136
          "Align inner loops to zero relative to this modulus")             \
5cac34e6fe54 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 5235
diff changeset
  3137
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3138
  product_pd(uintx, InitialCodeCacheSize,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3139
          "Initial code cache size (in bytes)")                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3140
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3141
  product_pd(uintx, ReservedCodeCacheSize,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3142
          "Reserved code cache size (in bytes) - maximum code cache size")  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3143
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3144
  product(uintx, CodeCacheMinimumFreeSpace, 500*K,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3145
          "When less than X space left, we stop compiling.")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3146
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3147
  product_pd(uintx, CodeCacheExpansionSize,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3148
          "Code cache expansion size (in bytes)")                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3149
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3150
  develop_pd(uintx, CodeCacheMinBlockLength,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3151
          "Minimum number of segments in a code cache block.")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3152
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3153
  notproduct(bool, ExitOnFullCodeCache, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3154
          "Exit the VM if we fill the code cache.")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3155
                                                                            \
10963
77222140e9ad 7103784: enable some flags by default
never
parents: 10739
diff changeset
  3156
  product(bool, UseCodeCacheFlushing, true,                                 \
4750
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3157
          "Attempt to clean the code cache before shutting off compiler")   \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3158
                                                                            \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3159
  product(intx,  MinCodeCacheFlushingInterval, 30,                          \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3160
          "Min number of seconds between code cache cleaning sessions")     \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3161
                                                                            \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3162
  product(uintx,  CodeCacheFlushingMinimumFreeSpace, 1500*K,                \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3163
          "When less than X space left, start code cache cleaning")         \
71fd601907dc 4360113: Evict nmethods when code cache gets full
kvn
parents: 4736
diff changeset
  3164
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3165
  /* interpreter debugging */                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3166
  develop(intx, BinarySwitchThreshold, 5,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3167
          "Minimal number of lookupswitch entries for rewriting to binary " \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3168
          "switch")                                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3169
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3170
  develop(intx, StopInterpreterAt, 0,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3171
          "Stops interpreter execution at specified bytecode number")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3172
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3173
  develop(intx, TraceBytecodesAt, 0,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3174
          "Traces bytecodes starting with specified bytecode number")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3175
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3176
  /* compiler interface */                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3177
  develop(intx, CIStart, 0,                                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3178
          "the id of the first compilation to permit")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3179
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3180
  develop(intx, CIStop,    -1,                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3181
          "the id of the last compilation to permit")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3182
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3183
  develop(intx, CIStartOSR,     0,                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3184
          "the id of the first osr compilation to permit "                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3185
          "(CICountOSR must be on)")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3186
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3187
  develop(intx, CIStopOSR,    -1,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3188
          "the id of the last osr compilation to permit "                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3189
          "(CICountOSR must be on)")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3190
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3191
  develop(intx, CIBreakAtOSR,    -1,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3192
          "id of osr compilation to break at")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3193
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3194
  develop(intx, CIBreakAt,    -1,                                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3195
          "id of compilation to break at")                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3196
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3197
  product(ccstrlist, CompileOnly, "",                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3198
          "List of methods (pkg/class.name) to restrict compilation to")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3199
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3200
  product(ccstr, CompileCommandFile, NULL,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3201
          "Read compiler commands from this file [.hotspot_compiler]")      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3202
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3203
  product(ccstrlist, CompileCommand, "",                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3204
          "Prepend to .hotspot_compiler; e.g. log,java/lang/String.<init>") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3205
                                                                            \
14477
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3206
  develop(bool, ReplayCompiles, false,                                      \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3207
          "Enable replay of compilations from ReplayDataFile")              \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3208
                                                                            \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3209
  develop(ccstr, ReplayDataFile, "replay.txt",                              \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3210
          "file containing compilation replay information")                 \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3211
                                                                            \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3212
  develop(intx, ReplaySuppressInitializers, 2,                              \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3213
          "Controls handling of class initialization during replay"         \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3214
          "0 - don't do anything special"                                   \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3215
          "1 - treat all class initializers as empty"                       \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3216
          "2 - treat class initializers for application classes as empty"   \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3217
          "3 - allow all class initializers to run during bootstrap but"    \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3218
          "    pretend they are empty after starting replay")               \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3219
                                                                            \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3220
  develop(bool, ReplayIgnoreInitErrors, false,                              \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3221
          "Ignore exceptions thrown during initialization for replay")      \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3222
                                                                            \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3223
  develop(bool, DumpReplayDataOnError, true,                                \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3224
          "record replay data for crashing compiler threads")               \
95e66ea71f71 6830717: replay of compilations would help with debugging
minqi
parents: 14386
diff changeset
  3225
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3226
  product(bool, CICompilerCountPerCPU, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3227
          "1 compiler thread for log(N CPUs)")                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3228
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3229
  develop(intx, CIFireOOMAt,    -1,                                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3230
          "Fire OutOfMemoryErrors throughout CI for testing the compiler "  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3231
          "(non-negative value throws OOM after this many CI accesses "     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3232
          "in each compile)")                                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3233
                                                                            \
3609
5f16c48e608a 6866585: debug code in ciObjectFactory too slow for large objects
jcoomes
parents: 3605
diff changeset
  3234
  notproduct(bool, CIObjectFactoryVerify, false,                            \
5f16c48e608a 6866585: debug code in ciObjectFactory too slow for large objects
jcoomes
parents: 3605
diff changeset
  3235
          "enable potentially expensive verification in ciObjectFactory")   \
5f16c48e608a 6866585: debug code in ciObjectFactory too slow for large objects
jcoomes
parents: 3605
diff changeset
  3236
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3237
  /* Priorities */                                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3238
  product_pd(bool, UseThreadPriorities,  "Use native thread priorities")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3239
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3240
  product(intx, ThreadPriorityPolicy, 0,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3241
          "0 : Normal.                                                     "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3242
          "    VM chooses priorities that are appropriate for normal       "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3243
          "    applications. On Solaris NORM_PRIORITY and above are mapped "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3244
          "    to normal native priority. Java priorities below NORM_PRIORITY"\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3245
          "    map to lower native priority values. On Windows applications"\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3246
          "    are allowed to use higher native priorities. However, with  "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3247
          "    ThreadPriorityPolicy=0, VM will not use the highest possible"\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3248
          "    native priority, THREAD_PRIORITY_TIME_CRITICAL, as it may   "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3249
          "    interfere with system threads. On Linux thread priorities   "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3250
          "    are ignored because the OS does not support static priority "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3251
          "    in SCHED_OTHER scheduling class which is the only choice for"\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3252
          "    non-root, non-realtime applications.                        "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3253
          "1 : Aggressive.                                                 "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3254
          "    Java thread priorities map over to the entire range of      "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3255
          "    native thread priorities. Higher Java thread priorities map "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3256
          "    to higher native thread priorities. This policy should be   "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3257
          "    used with care, as sometimes it can cause performance       "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3258
          "    degradation in the application and/or the entire system. On "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3259
          "    Linux this policy requires root privilege.")                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3260
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3261
  product(bool, ThreadPriorityVerbose, false,                               \
11601
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3262
          "Print priority changes")                                         \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3263
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3264
  product(intx, DefaultThreadPriority, -1,                                  \
11601
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3265
          "The native priority at which threads run if not elsewhere "      \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3266
          "specified (-1 means no change)")                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3267
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3268
  product(intx, CompilerThreadPriority, -1,                                 \
11601
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3269
          "The native priority at which compiler threads should run "       \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3270
          "(-1 means no change)")                                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3271
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3272
  product(intx, VMThreadPriority, -1,                                       \
11601
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3273
          "The native priority at which the VM thread should run "          \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3274
          "(-1 means no change)")                                           \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3275
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3276
  product(bool, CompilerThreadHintNoPreempt, true,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3277
          "(Solaris only) Give compiler threads an extra quanta")           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3278
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3279
  product(bool, VMThreadHintNoPreempt, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3280
          "(Solaris only) Give VM thread an extra quanta")                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3281
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3282
  product(intx, JavaPriority1_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3283
  product(intx, JavaPriority2_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3284
  product(intx, JavaPriority3_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3285
  product(intx, JavaPriority4_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3286
  product(intx, JavaPriority5_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3287
  product(intx, JavaPriority6_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3288
  product(intx, JavaPriority7_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3289
  product(intx, JavaPriority8_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3290
  product(intx, JavaPriority9_To_OSPriority, -1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3291
  product(intx, JavaPriority10_To_OSPriority,-1, "Map Java priorities to OS priorities") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3292
                                                                            \
11601
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3293
  experimental(bool, UseCriticalJavaThreadPriority, false,                  \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3294
          "Java thread priority 10 maps to critical scheduling priority")   \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3295
                                                                            \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3296
  experimental(bool, UseCriticalCompilerThreadPriority, false,              \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3297
          "Compiler thread(s) run at critical scheduling priority")         \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3298
                                                                            \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3299
  experimental(bool, UseCriticalCMSThreadPriority, false,                   \
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3300
          "ConcurrentMarkSweep thread runs at critical scheduling priority")\
f359304c1856 7082553: Interpret Thread.setPriority(Thread.MAX_PRIORITY) to mean FX60 on Solaris 10 and 11
phh
parents: 11487
diff changeset
  3301
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3302
  /* compiler debugging */                                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3303
  notproduct(intx, CompileTheWorldStartAt,     1,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3304
          "First class to consider when using +CompileTheWorld")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3305
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3306
  notproduct(intx, CompileTheWorldStopAt, max_jint,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3307
          "Last class to consider when using +CompileTheWorld")             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3308
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3309
  develop(intx, NewCodeParameter,      0,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3310
          "Testing Only: Create a dedicated integer parameter before "      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3311
          "putback")                                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3312
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3313
  /* new oopmap storage allocation */                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3314
  develop(intx, MinOopMapAllocation,     8,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3315
          "Minimum number of OopMap entries in an OopMapSet")               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3316
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3317
  /* Background Compilation */                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3318
  develop(intx, LongCompileThreshold,     50,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3319
          "Used with +TraceLongCompiles")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3320
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3321
  product(intx, StarvationMonitorInterval,    200,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3322
          "Pause between each check in ms")                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3323
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3324
  /* recompilation */                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3325
  product_pd(intx, CompileThreshold,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3326
          "number of interpreted method invocations before (re-)compiling") \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3327
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3328
  product_pd(intx, BackEdgeThreshold,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3329
          "Interpreter Back edge threshold at which an OSR compilation is invoked")\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3330
                                                                            \
6453
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3331
  product(intx, Tier0InvokeNotifyFreqLog, 7,                                \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3332
          "Interpreter (tier 0) invocation notification frequency.")        \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3333
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3334
  product(intx, Tier2InvokeNotifyFreqLog, 11,                               \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3335
          "C1 without MDO (tier 2) invocation notification frequency.")     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3336
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3337
  product(intx, Tier3InvokeNotifyFreqLog, 10,                               \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3338
          "C1 with MDO profiling (tier 3) invocation notification "         \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3339
          "frequency.")                                                     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3340
                                                                            \
10569
f5ce1108443b 7096639: Tiered: Incorrect counter overflow handling for inlined methods
iveresov
parents: 10565
diff changeset
  3341
  product(intx, Tier23InlineeNotifyFreqLog, 20,                             \
f5ce1108443b 7096639: Tiered: Incorrect counter overflow handling for inlined methods
iveresov
parents: 10565
diff changeset
  3342
          "Inlinee invocation (tiers 2 and 3) notification frequency")      \
f5ce1108443b 7096639: Tiered: Incorrect counter overflow handling for inlined methods
iveresov
parents: 10565
diff changeset
  3343
                                                                            \
6453
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3344
  product(intx, Tier0BackedgeNotifyFreqLog, 10,                             \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3345
          "Interpreter (tier 0) invocation notification frequency.")        \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3346
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3347
  product(intx, Tier2BackedgeNotifyFreqLog, 14,                             \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3348
          "C1 without MDO (tier 2) invocation notification frequency.")     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3349
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3350
  product(intx, Tier3BackedgeNotifyFreqLog, 13,                             \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3351
          "C1 with MDO profiling (tier 3) invocation notification "         \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3352
          "frequency.")                                                     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3353
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3354
  product(intx, Tier2CompileThreshold, 0,                                   \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3355
          "threshold at which tier 2 compilation is invoked")               \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3356
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3357
  product(intx, Tier2BackEdgeThreshold, 0,                                  \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3358
          "Back edge threshold at which tier 2 compilation is invoked")     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3359
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3360
  product(intx, Tier3InvocationThreshold, 200,                              \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3361
          "Compile if number of method invocations crosses this "           \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3362
          "threshold")                                                      \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3363
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3364
  product(intx, Tier3MinInvocationThreshold, 100,                           \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3365
          "Minimum invocation to compile at tier 3")                        \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3366
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3367
  product(intx, Tier3CompileThreshold, 2000,                                \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3368
          "Threshold at which tier 3 compilation is invoked (invocation "   \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3369
          "minimum must be satisfied.")                                     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3370
                                                                            \
11566
351229eec596 7132945: Tiered: adjust OSR threshold of level 3
iveresov
parents: 11487
diff changeset
  3371
  product(intx, Tier3BackEdgeThreshold,  60000,                             \
6453
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3372
          "Back edge threshold at which tier 3 OSR compilation is invoked") \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3373
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3374
  product(intx, Tier4InvocationThreshold, 5000,                             \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3375
          "Compile if number of method invocations crosses this "           \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3376
          "threshold")                                                      \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3377
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3378
  product(intx, Tier4MinInvocationThreshold, 600,                           \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3379
          "Minimum invocation to compile at tier 4")                        \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3380
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3381
  product(intx, Tier4CompileThreshold, 15000,                               \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3382
          "Threshold at which tier 4 compilation is invoked (invocation "   \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3383
          "minimum must be satisfied.")                                     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3384
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3385
  product(intx, Tier4BackEdgeThreshold, 40000,                              \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3386
          "Back edge threshold at which tier 4 OSR compilation is invoked") \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3387
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3388
  product(intx, Tier3DelayOn, 5,                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3389
          "If C2 queue size grows over this amount per compiler thread "    \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3390
          "stop compiling at tier 3 and start compiling at tier 2")         \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3391
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3392
  product(intx, Tier3DelayOff, 2,                                           \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3393
          "If C2 queue size is less than this amount per compiler thread "  \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3394
          "allow methods compiled at tier 2 transition to tier 3")          \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3395
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3396
  product(intx, Tier3LoadFeedback, 5,                                       \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3397
          "Tier 3 thresholds will increase twofold when C1 queue size "     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3398
          "reaches this amount per compiler thread")                        \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3399
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3400
  product(intx, Tier4LoadFeedback, 3,                                       \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3401
          "Tier 4 thresholds will increase twofold when C2 queue size "     \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3402
          "reaches this amount per compiler thread")                        \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3403
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3404
  product(intx, TieredCompileTaskTimeout, 50,                               \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3405
          "Kill compile task if method was not used within "                \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3406
          "given timeout in milliseconds")                                  \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3407
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3408
  product(intx, TieredStopAtLevel, 4,                                       \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3409
          "Stop at given compilation level")                                \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3410
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3411
  product(intx, Tier0ProfilingStartPercentage, 200,                         \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3412
          "Start profiling in interpreter if the counters exceed tier 3"    \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3413
          "thresholds by the specified percentage")                         \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3414
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3415
  product(intx, TieredRateUpdateMinTime, 1,                                 \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3416
          "Minimum rate sampling interval (in milliseconds)")               \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3417
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3418
  product(intx, TieredRateUpdateMaxTime, 25,                                \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3419
          "Maximum rate sampling interval (in milliseconds)")               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3420
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3421
  product_pd(bool, TieredCompilation,                                       \
6453
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3422
          "Enable tiered compilation")                                      \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3423
                                                                            \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3424
  product(bool, PrintTieredEvents, false,                                   \
970dc585ab63 6953144: Tiered compilation
iveresov
parents: 6419
diff changeset
  3425
          "Print tiered events notifications")                              \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3426
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3427
  product_pd(intx, OnStackReplacePercentage,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3428
          "NON_TIERED number of method invocations/branches (expressed as %"\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3429
          "of CompileThreshold) before (re-)compiling OSR code")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3430
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3431
  product(intx, InterpreterProfilePercentage, 33,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3432
          "NON_TIERED number of method invocations/branches (expressed as %"\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3433
          "of CompileThreshold) before profiling in the interpreter")       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3434
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3435
  develop(intx, MaxRecompilationSearchLength,    10,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3436
          "max. # frames to inspect searching for recompilee")              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3437
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3438
  develop(intx, MaxInterpretedSearchLength,     3,                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3439
          "max. # interp. frames to skip when searching for recompilee")    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3440
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3441
  develop(intx, DesiredMethodLimit,  8000,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3442
          "desired max. method size (in bytecodes) after inlining")         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3443
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3444
  develop(intx, HugeMethodLimit,  8000,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3445
          "don't compile methods larger than this if "                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3446
          "+DontCompileHugeMethods")                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3447
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3448
  /* New JDK 1.4 reflection implementation */                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3449
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3450
  develop(bool, UseNewReflection, true,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3451
          "Temporary flag for transition to reflection based on dynamic "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3452
          "bytecode generation in 1.4; can no longer be turned off in 1.4 " \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3453
          "JDK, and is unneeded in 1.3 JDK, but marks most places VM "      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3454
          "changes were needed")                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3455
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3456
  develop(bool, VerifyReflectionBytecodes, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3457
          "Force verification of 1.4 reflection bytecodes. Does not work "  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3458
          "in situations like that described in 4486457 or for "            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3459
          "constructors generated for serialization, so can not be enabled "\
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3460
          "in product.")                                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3461
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3462
  product(bool, ReflectionWrapResolutionErrors, true,                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3463
          "Temporary flag for transition to AbstractMethodError wrapped "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3464
          "in InvocationTargetException. See 6531596")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3465
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3466
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3467
  develop(intx, FastSuperclassLimit, 8,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3468
          "Depth of hardwired instanceof accelerator array")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3469
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3470
  /* Properties for Java libraries  */                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3471
                                                                            \
13197
b552dfeffb3c 7179383: MaxDirectMemorySize argument parsing is broken for values >2G
dholmes
parents: 13195
diff changeset
  3472
  product(uintx, MaxDirectMemorySize, 0,                                    \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3473
          "Maximum total size of NIO direct-buffer allocations")            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3474
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3475
  /* temporary developer defined flags  */                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3476
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3477
  diagnostic(bool, UseNewCode, false,                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3478
          "Testing Only: Use the new version while testing")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3479
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3480
  diagnostic(bool, UseNewCode2, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3481
          "Testing Only: Use the new version while testing")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3482
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3483
  diagnostic(bool, UseNewCode3, false,                                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3484
          "Testing Only: Use the new version while testing")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3485
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3486
  /* flags for performance data collection */                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3487
                                                                            \
10020
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
  3488
  product(bool, UsePerfData, falseInEmbedded,                               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3489
          "Flag to disable jvmstat instrumentation for performance testing" \
10020
9325b4244ec4 7061192: option handling adjustments for oracle and embedded builds
jcoomes
parents: 10003
diff changeset
  3490
          "and problem isolation purposes.")                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3491
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3492
  product(bool, PerfDataSaveToFile, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3493
          "Save PerfData memory to hsperfdata_<pid> file on exit")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3494
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3495
  product(ccstr, PerfDataSaveFile, NULL,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3496
          "Save PerfData memory to the specified absolute pathname,"        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3497
           "%p in the file name if present will be replaced by pid")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3498
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3499
  product(intx, PerfDataSamplingInterval, 50 /*ms*/,                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3500
          "Data sampling interval in milliseconds")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3501
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3502
  develop(bool, PerfTraceDataCreation, false,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3503
          "Trace creation of Performance Data Entries")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3504
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3505
  develop(bool, PerfTraceMemOps, false,                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3506
          "Trace PerfMemory create/attach/detach calls")                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3507
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3508
  product(bool, PerfDisableSharedMem, false,                                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3509
          "Store performance data in standard memory")                      \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3510
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3511
  product(intx, PerfDataMemorySize, 32*K,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3512
          "Size of performance data memory region. Will be rounded "        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3513
          "up to a multiple of the native os page size.")                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3514
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3515
  product(intx, PerfMaxStringConstLength, 1024,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3516
          "Maximum PerfStringConstant string length before truncation")     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3517
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3518
  product(bool, PerfAllowAtExitRegistration, false,                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3519
          "Allow registration of atexit() methods")                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3520
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3521
  product(bool, PerfBypassFileSystemCheck, false,                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3522
          "Bypass Win32 file system criteria checks (Windows Only)")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3523
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3524
  product(intx, UnguardOnExecutionViolation, 0,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3525
          "Unguard page and retry on no-execute fault (Win32 only)"         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3526
          "0=off, 1=conservative, 2=aggressive")                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3527
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3528
  /* Serviceability Support */                                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3529
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3530
  product(bool, ManagementServer, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3531
          "Create JMX Management Server")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3532
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3533
  product(bool, DisableAttachMechanism, false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3534
         "Disable mechanism that allows tools to attach to this VM")        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3535
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3536
  product(bool, StartAttachListener, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3537
          "Always start Attach Listener at VM startup")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3538
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3539
  manageable(bool, PrintConcurrentLocks, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3540
          "Print java.util.concurrent locks in thread dump")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3541
                                                                            \
8124
70ed6d8368bc 7019718: make error reporting flags product instead of diagnostic
kamg
parents: 8119
diff changeset
  3542
  product(bool, TransmitErrorReport, false,                                 \
8114
340b5b8b544b 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 8107
diff changeset
  3543
          "Enable error report transmission on erroneous termination")      \
340b5b8b544b 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 8107
diff changeset
  3544
                                                                            \
8124
70ed6d8368bc 7019718: make error reporting flags product instead of diagnostic
kamg
parents: 8119
diff changeset
  3545
  product(ccstr, ErrorReportServer, NULL,                                   \
8114
340b5b8b544b 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 8107
diff changeset
  3546
          "Override built-in error report server address")                  \
340b5b8b544b 7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents: 8107
diff changeset
  3547
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3548
  /* Shared spaces */                                                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3549
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3550
  product(bool, UseSharedSpaces, true,                                      \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  3551
          "Use shared spaces for metadata")                                 \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3552
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3553
  product(bool, RequireSharedSpaces, false,                                 \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  3554
          "Require shared spaces for metadata")                             \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3555
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3556
  product(bool, DumpSharedSpaces, false,                                    \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3557
           "Special mode: JVM reads a class list, loads classes, builds "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3558
            "shared spaces, and dumps the shared spaces to a file to be "   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3559
            "used in future JVM runs.")                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3560
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3561
  product(bool, PrintSharedSpaces, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3562
          "Print usage of shared spaces")                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3563
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3564
  product(uintx, SharedReadWriteSize,  NOT_LP64(12*M) LP64_ONLY(16*M),      \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  3565
          "Size of read-write space for metadata (in bytes)")               \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3566
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3567
  product(uintx, SharedReadOnlySize,  NOT_LP64(12*M) LP64_ONLY(16*M),       \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  3568
          "Size of read-only space for metadata (in bytes)")                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3569
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3570
  product(uintx, SharedMiscDataSize,    NOT_LP64(2*M) LP64_ONLY(4*M),       \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  3571
          "Size of the shared miscellaneous data area (in bytes)")          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3572
                                                                            \
13728
882756847a04 6964458: Reimplement class meta-data storage to use native memory
coleenp
parents: 13521
diff changeset
  3573
  product(uintx, SharedMiscCodeSize,    120*K,                              \
15101
58d43bf04c45 8005076: Creating a CDS archive with one alignment and running another causes a crash.
hseigel
parents: 14835
diff changeset
  3574
          "Size of the shared miscellaneous code area (in bytes)")          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3575
                                                                            \
16430
882cddc35bec 8008217: CDS: Class data sharing limits the malloc heap on Solaris
coleenp
parents: 16428
diff changeset
  3576
  product(uintx, SharedBaseAddress, LP64_ONLY(32*G)                         \
882cddc35bec 8008217: CDS: Class data sharing limits the malloc heap on Solaris
coleenp
parents: 16428
diff changeset
  3577
          NOT_LP64(LINUX_ONLY(2*G) NOT_LINUX(0)),                           \
882cddc35bec 8008217: CDS: Class data sharing limits the malloc heap on Solaris
coleenp
parents: 16428
diff changeset
  3578
          "Address to allocate shared memory region for class data")        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3579
                                                                            \
8883
5569135acca3 6817525: turn on method handle functionality by default for JSR 292
twisti
parents: 8870
diff changeset
  3580
  diagnostic(bool, EnableInvokeDynamic, true,                               \
5569135acca3 6817525: turn on method handle functionality by default for JSR 292
twisti
parents: 8870
diff changeset
  3581
          "support JSR 292 (method handles, invokedynamic, "                \
5569135acca3 6817525: turn on method handle functionality by default for JSR 292
twisti
parents: 8870
diff changeset
  3582
          "anonymous classes")                                              \
5569135acca3 6817525: turn on method handle functionality by default for JSR 292
twisti
parents: 8870
diff changeset
  3583
                                                                            \
9980
a330de5dea17 7052219: JSR 292: Crash in ~BufferBlob::MethodHandles adapters
never
parents: 9968
diff changeset
  3584
  diagnostic(bool, PrintMethodHandleStubs, false,                           \
a330de5dea17 7052219: JSR 292: Crash in ~BufferBlob::MethodHandles adapters
never
parents: 9968
diff changeset
  3585
          "Print generated stub code for method handles")                   \
a330de5dea17 7052219: JSR 292: Crash in ~BufferBlob::MethodHandles adapters
never
parents: 9968
diff changeset
  3586
                                                                            \
2534
08dac9ce0cd7 6655638: dynamic languages need method handles
jrose
parents: 2352
diff changeset
  3587
  develop(bool, TraceMethodHandles, false,                                  \
08dac9ce0cd7 6655638: dynamic languages need method handles
jrose
parents: 2352
diff changeset
  3588
          "trace internal method handle operations")                        \
08dac9ce0cd7 6655638: dynamic languages need method handles
jrose
parents: 2352
diff changeset
  3589
                                                                            \
08dac9ce0cd7 6655638: dynamic languages need method handles
jrose
parents: 2352
diff changeset
  3590
  diagnostic(bool, VerifyMethodHandles, trueInDebug,                        \
08dac9ce0cd7 6655638: dynamic languages need method handles
jrose
parents: 2352
diff changeset
  3591
          "perform extra checks when constructing method handles")          \
08dac9ce0cd7 6655638: dynamic languages need method handles
jrose
parents: 2352
diff changeset
  3592
                                                                            \
13391
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 13197
diff changeset
  3593
  diagnostic(bool, ShowHiddenFrames, false,                                 \
30245956af37 7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents: 13197
diff changeset
  3594
          "show method handle implementation frames (usually hidden)")      \
9946
b3d5b50e2289 7045513: JSR 292 inlining causes crashes in methodHandleWalk.cpp
never
parents: 9942
diff changeset
  3595
                                                                            \
4644
2b1a1bc98168 6912065: final fields in objects need to support inlining optimizations for JSR 292
jrose
parents: 4586
diff changeset
  3596
  experimental(bool, TrustFinalNonStaticFields, false,                      \
2b1a1bc98168 6912065: final fields in objects need to support inlining optimizations for JSR 292
jrose
parents: 4586
diff changeset
  3597
          "trust final non-static declarations for constant folding")       \
2b1a1bc98168 6912065: final fields in objects need to support inlining optimizations for JSR 292
jrose
parents: 4586
diff changeset
  3598
                                                                            \
2570
ecc7862946d4 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 2536
diff changeset
  3599
  develop(bool, TraceInvokeDynamic, false,                                  \
ecc7862946d4 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 2536
diff changeset
  3600
          "trace internal invoke dynamic operations")                       \
ecc7862946d4 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 2536
diff changeset
  3601
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3602
  diagnostic(bool, PauseAtStartup,      false,                              \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3603
          "Causes the VM to pause at startup time and wait for the pause "  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3604
          "file to be removed (default: ./vm.paused.<pid>)")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3605
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3606
  diagnostic(ccstr, PauseAtStartupFile, NULL,                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3607
          "The file to create and for whose removal to await when pausing " \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3608
          "at startup. (default: ./vm.paused.<pid>)")                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3609
                                                                            \
8476
7e34c2d4cf9b 7022037: Pause when exiting if debugger is attached on windows
sla
parents: 8335
diff changeset
  3610
  diagnostic(bool, PauseAtExit, false,                                      \
7e34c2d4cf9b 7022037: Pause when exiting if debugger is attached on windows
sla
parents: 8335
diff changeset
  3611
          "Pause and wait for keypress on exit if a debugger is attached")  \
7e34c2d4cf9b 7022037: Pause when exiting if debugger is attached on windows
sla
parents: 8335
diff changeset
  3612
                                                                            \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3613
  product(bool, ExtendedDTraceProbes,    false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3614
          "Enable performance-impacting dtrace probes")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3615
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3616
  product(bool, DTraceMethodProbes, false,                                  \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3617
          "Enable dtrace probes for method-entry and method-exit")          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3618
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3619
  product(bool, DTraceAllocProbes, false,                                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3620
          "Enable dtrace probes for object allocation")                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3621
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3622
  product(bool, DTraceMonitorProbes, false,                                 \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3623
          "Enable dtrace probes for monitor events")                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3624
                                                                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3625
  product(bool, RelaxAccessControlCheck, false,                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3626
          "Relax the access control checks in the verifier")                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3627
                                                                            \
363
99d43e8a76ad 6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents: 360
diff changeset
  3628
  diagnostic(bool, PrintDTraceDOF, false,                                   \
99d43e8a76ad 6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents: 360
diff changeset
  3629
             "Print the DTrace DOF passed to the system for JSDT probes")   \
99d43e8a76ad 6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents: 360
diff changeset
  3630
                                                                            \
14487
9a40ad461ee9 7122219: Passed StringTableSize value not verified
hseigel
parents: 14386
diff changeset
  3631
  product(uintx, StringTableSize, defaultStringTableSize,                   \
8727
1642a45f024f 6962930: make the string table size configurable
jcoomes
parents: 8725
diff changeset
  3632
          "Number of buckets in the interned String table")                 \
1642a45f024f 6962930: make the string table size configurable
jcoomes
parents: 8725
diff changeset
  3633
                                                                            \
14385
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3634
  develop(bool, TraceDefaultMethods, false,                                 \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3635
          "Trace the default method processing steps")                      \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3636
                                                                            \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3637
  develop(bool, ParseAllGenericSignatures, false,                           \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3638
          "Parse all generic signatures while classloading")                \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3639
                                                                            \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3640
  develop(bool, VerifyGenericSignatures, false,                             \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3641
          "Abort VM on erroneous or inconsistent generic signatures")       \
959bbcc16725 7200776: Implement default methods in interfaces
kamg
parents: 14284
diff changeset
  3642
                                                                            \
1602
6859fd21ba2b 6554406: Change switch UseVMInterruptibleIO default to false (sol)
xlu
parents: 1562
diff changeset
  3643
  product(bool, UseVMInterruptibleIO, false,                                \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3644
          "(Unstable, Solaris-specific) Thread interrupt before or with "   \
1602
6859fd21ba2b 6554406: Change switch UseVMInterruptibleIO default to false (sol)
xlu
parents: 1562
diff changeset
  3645
          "EINTR for I/O operations results in OS_INTRPT. The default value"\
12095
cc3d6f08a4c4 7148152: Add whitebox testing API to HotSpot
mgerdin
parents: 11789
diff changeset
  3646
          " of this flag is true for JDK 6 and earlier")                    \
cc3d6f08a4c4 7148152: Add whitebox testing API to HotSpot
mgerdin
parents: 11789
diff changeset
  3647
                                                                            \
cc3d6f08a4c4 7148152: Add whitebox testing API to HotSpot
mgerdin
parents: 11789
diff changeset
  3648
  diagnostic(bool, WhiteBoxAPI, false,                                      \
12630
ddf6ee008138 7166894: Add gc cause to GC logging for all collectors
brutisso
parents: 12263
diff changeset
  3649
          "Enable internal testing APIs")                                   \
ddf6ee008138 7166894: Add gc cause to GC logging for all collectors
brutisso
parents: 12263
diff changeset
  3650
                                                                            \
ddf6ee008138 7166894: Add gc cause to GC logging for all collectors
brutisso
parents: 12263
diff changeset
  3651
  product(bool, PrintGCCause, true,                                         \
15918
3fcc894aca8c 8001307: Modify ACC_SUPER behavior
kamg
parents: 14081
diff changeset
  3652
          "Include GC cause in GC logging")                                 \
3fcc894aca8c 8001307: Modify ACC_SUPER behavior
kamg
parents: 14081
diff changeset
  3653
                                                                            \
3fcc894aca8c 8001307: Modify ACC_SUPER behavior
kamg
parents: 14081
diff changeset
  3654
  product(bool, AllowNonVirtualCalls, false,                                \
3fcc894aca8c 8001307: Modify ACC_SUPER behavior
kamg
parents: 14081
diff changeset
  3655
          "Obey the ACC_SUPER flag and allow invokenonvirtual calls")
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3656
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3657
/*
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3658
 *  Macros for factoring of globals
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3659
 */
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3660
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3661
// Interface macros
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3662
#define DECLARE_PRODUCT_FLAG(type, name, value, doc)    extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3663
#define DECLARE_PD_PRODUCT_FLAG(type, name, doc)        extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3664
#define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
1382
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
  3665
#define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3666
#define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3667
#define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3668
#ifdef PRODUCT
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3669
#define DECLARE_DEVELOPER_FLAG(type, name, value, doc)  const type name = value;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3670
#define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)      const type name = pd_##name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3671
#define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3672
#else
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3673
#define DECLARE_DEVELOPER_FLAG(type, name, value, doc)  extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3674
#define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)      extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3675
#define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)  extern "C" type name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3676
#endif
360
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3677
// Special LP64 flags, product only needed for now.
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3678
#ifdef _LP64
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3679
#define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3680
#else
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3681
#define DECLARE_LP64_PRODUCT_FLAG(type, name, value, doc) const type name = value;
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3682
#endif // _LP64
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3683
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3684
// Implementation macros
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3685
#define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc)   type name = value;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3686
#define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc)       type name = pd_##name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3687
#define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value;
1382
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
  3688
#define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value;
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3689
#define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3690
#define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3691
#ifdef PRODUCT
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3692
#define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) /* flag name is constant */
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3693
#define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)     /* flag name is constant */
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3694
#define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc)
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3695
#else
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3696
#define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3697
#define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)     type name = pd_##name;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3698
#define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value;
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3699
#endif
360
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3700
#ifdef _LP64
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3701
#define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc)   type name = value;
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3702
#else
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3703
#define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
21d113ecbf6a 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 356
diff changeset
  3704
#endif // _LP64
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3705
1382
fa3de4068282 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 1380
diff changeset
  3706
RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG, DECLARE_LP64_PRODUCT_FLAG)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3707
489c9b5090e2 Initial load
duke
parents:
diff changeset
  3708
RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
  3709
13521
97a23be06f4e 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 13479
diff changeset
  3710
ARCH_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG)
97a23be06f4e 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
twisti
parents: 13479
diff changeset
  3711
11183
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
  3712
// Extensions
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
  3713
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
  3714
#include "runtime/globals_ext.hpp"
a81bb5c041d3 7117389: Add a framework for vendor-specific command line switch extensions to Hotspot
phh
parents: 11167
diff changeset
  3715
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 6987
diff changeset
  3716
#endif // SHARE_VM_RUNTIME_GLOBALS_HPP