annotate src/cpu/x86/vm/globals_x86.hpp @ 2368:dde920245681

6896099: Integrate CMS heap ergo with default heap sizing ergo 6627787: CMS: JVM refuses to start up with -Xms16m -Xmx16m 7000125: CMS: Anti-monotone young gen sizing with respect to maximum whole heap size specification 7027529: CMS: retire CMSUseOldDefaults flag Summary: Simplify CMS heap sizing code, relying on ergonomic initial sizing consistent with other collectors for the most part, controlling only young gen sizing to rein in pause times. Make CMS young gen sizing default statically cpu-dependant. Remove inconsistencies wrt generation sizing and policy code, allowing for the fixing for 6627787 and 7000125. For 7027529, retire the flag CMSUseOldDefaults which had been introduced as a bridge from JDK 5 to JDK 6 a number of years ago. Reviewed-by: brutisso, poonam
author ysr
date Wed, 16 Mar 2011 10:37:08 -0700
parents 182e9624aa42
children f08d439fab8c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
2368
dde920245681 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 2150
diff changeset
2 * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1365
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1365
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1365
diff changeset
21 * questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
25 #ifndef CPU_X86_VM_GLOBALS_X86_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
26 #define CPU_X86_VM_GLOBALS_X86_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
27
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
28 #include "utilities/globalDefinitions.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
29 #include "utilities/macros.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
30
0
a61af66fc99e Initial load
duke
parents:
diff changeset
31 // Sets the default values for platform dependent flags used by the runtime system.
a61af66fc99e Initial load
duke
parents:
diff changeset
32 // (see globals.hpp)
a61af66fc99e Initial load
duke
parents:
diff changeset
33
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
34 define_pd_global(bool, ConvertSleepToYield, true);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
35 define_pd_global(bool, ShareVtableStubs, true);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
36 define_pd_global(bool, CountInterpCalls, true);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
37 define_pd_global(bool, NeedsDeoptSuspend, false); // only register window machines need this
0
a61af66fc99e Initial load
duke
parents:
diff changeset
38
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
39 define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
40 define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs past to check cast
0
a61af66fc99e Initial load
duke
parents:
diff changeset
41
a61af66fc99e Initial load
duke
parents:
diff changeset
42 // See 4827828 for this change. There is no globals_core_i486.hpp. I can't
a61af66fc99e Initial load
duke
parents:
diff changeset
43 // assign a different value for C2 without touching a number of files. Use
a61af66fc99e Initial load
duke
parents:
diff changeset
44 // #ifdef to minimize the change as it's late in Mantis. -- FIXME.
a61af66fc99e Initial load
duke
parents:
diff changeset
45 // c1 doesn't have this problem because the fix to 4858033 assures us
a61af66fc99e Initial load
duke
parents:
diff changeset
46 // the the vep is aligned at CodeEntryAlignment whereas c2 only aligns
a61af66fc99e Initial load
duke
parents:
diff changeset
47 // the uep and the vep doesn't get real alignment but just slops on by
a61af66fc99e Initial load
duke
parents:
diff changeset
48 // only assured that the entry instruction meets the 5 byte size requirement.
a61af66fc99e Initial load
duke
parents:
diff changeset
49 #ifdef COMPILER2
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
50 define_pd_global(intx, CodeEntryAlignment, 32);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
51 #else
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
52 define_pd_global(intx, CodeEntryAlignment, 16);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
53 #endif // COMPILER2
1365
6476042f815c 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 1064
diff changeset
54 define_pd_global(intx, OptoLoopAlignment, 16);
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
55 define_pd_global(intx, InlineFrequencyCount, 100);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
56 define_pd_global(intx, InlineSmallCode, 1000);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
57
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
58 define_pd_global(intx, StackYellowPages, 2);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
59 define_pd_global(intx, StackRedPages, 1);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
60 #ifdef AMD64
a61af66fc99e Initial load
duke
parents:
diff changeset
61 // Very large C++ stack frames using solaris-amd64 optimized builds
a61af66fc99e Initial load
duke
parents:
diff changeset
62 // due to lack of optimization caused by C++ compiler bugs
a61af66fc99e Initial load
duke
parents:
diff changeset
63 define_pd_global(intx, StackShadowPages, SOLARIS_ONLY(20) NOT_SOLARIS(6) DEBUG_ONLY(+2));
a61af66fc99e Initial load
duke
parents:
diff changeset
64 #else
2150
182e9624aa42 7012642: G1: JumbleGC002 test aborts with segmentation violation due to uncaught stack overflow
johnc
parents: 1972
diff changeset
65 define_pd_global(intx, StackShadowPages, 3 DEBUG_ONLY(+5));
0
a61af66fc99e Initial load
duke
parents:
diff changeset
66 #endif // AMD64
a61af66fc99e Initial load
duke
parents:
diff changeset
67
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
68 define_pd_global(intx, PreInflateSpin, 10);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
69
a61af66fc99e Initial load
duke
parents:
diff changeset
70 define_pd_global(bool, RewriteBytecodes, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
71 define_pd_global(bool, RewriteFrequentPairs, true);
1868
3dc12ef8735e 6989297: Integrate additional portability improvements
bobv
parents: 1552
diff changeset
72
3dc12ef8735e 6989297: Integrate additional portability improvements
bobv
parents: 1552
diff changeset
73 define_pd_global(bool, UseMembar, false);
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
74
2368
dde920245681 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 2150
diff changeset
75 // GC Ergo Flags
dde920245681 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 2150
diff changeset
76 define_pd_global(intx, CMSYoungGenPerWorker, 64*M); // default max size of CMS young gen, per GC worker thread
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
77 #endif // CPU_X86_VM_GLOBALS_X86_HPP