annotate src/cpu/sparc/vm/globals_sparc.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 f95d63e2154a
children 28d91e43ab6d
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: 1972
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_SPARC_VM_GLOBALS_SPARC_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1868
diff changeset
26 #define CPU_SPARC_VM_GLOBALS_SPARC_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
a61af66fc99e Initial load
duke
parents:
diff changeset
34 // For sparc we do not do call backs when a thread is in the interpreter, because the
a61af66fc99e Initial load
duke
parents:
diff changeset
35 // interpreter dispatch needs at least two instructions - first to load the dispatch address
a61af66fc99e Initial load
duke
parents:
diff changeset
36 // in a register, and second to jmp. The swapping of the dispatch table may occur _after_
a61af66fc99e Initial load
duke
parents:
diff changeset
37 // the load of the dispatch address and hence the jmp would still go to the location
a61af66fc99e Initial load
duke
parents:
diff changeset
38 // according to the prior table. So, we let the thread continue and let it block by itself.
a61af66fc99e Initial load
duke
parents:
diff changeset
39 define_pd_global(bool, DontYieldALot, true); // yield no more than 100 times per second
a61af66fc99e Initial load
duke
parents:
diff changeset
40 define_pd_global(bool, ConvertSleepToYield, false); // do not convert sleep(0) to yield. Helps GUI
a61af66fc99e Initial load
duke
parents:
diff changeset
41 define_pd_global(bool, ShareVtableStubs, false); // improves performance markedly for mtrt and compress
a61af66fc99e Initial load
duke
parents:
diff changeset
42 define_pd_global(bool, CountInterpCalls, false); // not implemented in the interpreter
a61af66fc99e Initial load
duke
parents:
diff changeset
43 define_pd_global(bool, NeedsDeoptSuspend, true); // register window machines need this
a61af66fc99e Initial load
duke
parents:
diff changeset
44
a61af66fc99e Initial load
duke
parents:
diff changeset
45 define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks
a61af66fc99e Initial load
duke
parents:
diff changeset
46 define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs past to check cast
a61af66fc99e Initial load
duke
parents:
diff changeset
47
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
48 define_pd_global(intx, CodeEntryAlignment, 32);
1365
6476042f815c 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 1064
diff changeset
49 // The default setting 16/16 seems to work best.
6476042f815c 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 1064
diff changeset
50 // (For _228_jack 16/16 is 2% better than 4/4, 16/4, 32/32, 32/16, or 16/32.)
6476042f815c 6940701: Don't align loops in stubs for Niagara sparc
kvn
parents: 1064
diff changeset
51 define_pd_global(intx, OptoLoopAlignment, 16); // = 4*wordSize
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
52 define_pd_global(intx, InlineFrequencyCount, 50); // we can use more inlining on the SPARC
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
53 define_pd_global(intx, InlineSmallCode, 1500);
2368
dde920245681 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 1972
diff changeset
54
0
a61af66fc99e Initial load
duke
parents:
diff changeset
55 #ifdef _LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
56 // Stack slots are 2X larger in LP64 than in the 32 bit VM.
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
57 define_pd_global(intx, ThreadStackSize, 1024);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
58 define_pd_global(intx, VMThreadStackSize, 1024);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
59 #else
1064
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
60 define_pd_global(intx, ThreadStackSize, 512);
473cce303f13 6887571: Increase default heap config sizes
phh
parents: 844
diff changeset
61 define_pd_global(intx, VMThreadStackSize, 512);
0
a61af66fc99e Initial load
duke
parents:
diff changeset
62 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
63
a61af66fc99e Initial load
duke
parents:
diff changeset
64 define_pd_global(intx, StackYellowPages, 2);
a61af66fc99e Initial load
duke
parents:
diff changeset
65 define_pd_global(intx, StackRedPages, 1);
a61af66fc99e Initial load
duke
parents:
diff changeset
66 define_pd_global(intx, StackShadowPages, 3 DEBUG_ONLY(+1));
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, 40); // Determined by running design center
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: 1972
diff changeset
75 // GC Ergo Flags
dde920245681 6896099: Integrate CMS heap ergo with default heap sizing ergo
ysr
parents: 1972
diff changeset
76 define_pd_global(intx, CMSYoungGenPerWorker, 16*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_SPARC_VM_GLOBALS_SPARC_HPP