Mercurial > hg > truffle
annotate src/share/vm/runtime/vm_version.cpp @ 9126:bc26f978b0ce
HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly
don't use the (wrong) cached value, but ask the runtime on each request.
Fixes regression on xml.* benchmarks @ specjvm2008. The problem was:
After the constructor of Object was deoptimized due to an assumption violation,
it was recompiled again after some time. However, on recompilation, the value
of hasFinalizeSubclass for the class was not updated and it was compiled again
with a, now wrong, assumption, which then triggers deoptimization again.
This was repeated until it hit the recompilation limit (defined by
PerMethodRecompilationCutoff), and therefore only executed by the interpreter
from now on, causing the performance regression.
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Mon, 15 Apr 2013 19:54:58 +0200 |
parents | b9a918201d47 |
children | cefad50507d8 |
rev | line source |
---|---|
0 | 1 /* |
7951 | 2 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1547
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1547
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:
1547
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
1972 | 25 #include "precompiled.hpp" |
26 #include "memory/universe.hpp" | |
27 #include "oops/oop.inline.hpp" | |
28 #include "runtime/arguments.hpp" | |
29 #ifdef TARGET_ARCH_x86 | |
30 # include "vm_version_x86.hpp" | |
31 #endif | |
32 #ifdef TARGET_ARCH_sparc | |
33 # include "vm_version_sparc.hpp" | |
34 #endif | |
35 #ifdef TARGET_ARCH_zero | |
36 # include "vm_version_zero.hpp" | |
37 #endif | |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
38 #ifdef TARGET_ARCH_arm |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
39 # include "vm_version_arm.hpp" |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
40 #endif |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
41 #ifdef TARGET_ARCH_ppc |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
42 # include "vm_version_ppc.hpp" |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
43 #endif |
0 | 44 |
45 const char* Abstract_VM_Version::_s_vm_release = Abstract_VM_Version::vm_release(); | |
46 const char* Abstract_VM_Version::_s_internal_vm_info_string = Abstract_VM_Version::internal_vm_info_string(); | |
47 bool Abstract_VM_Version::_supports_cx8 = false; | |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
48 bool Abstract_VM_Version::_supports_atomic_getset4 = false; |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
49 bool Abstract_VM_Version::_supports_atomic_getset8 = false; |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
50 bool Abstract_VM_Version::_supports_atomic_getadd4 = false; |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
4890
diff
changeset
|
51 bool Abstract_VM_Version::_supports_atomic_getadd8 = false; |
0 | 52 unsigned int Abstract_VM_Version::_logical_processors_per_package = 1U; |
3854 | 53 int Abstract_VM_Version::_reserve_for_allocation_prefetch = 0; |
0 | 54 |
55 #ifndef HOTSPOT_RELEASE_VERSION | |
56 #error HOTSPOT_RELEASE_VERSION must be defined | |
57 #endif | |
58 #ifndef JRE_RELEASE_VERSION | |
59 #error JRE_RELEASE_VERSION must be defined | |
60 #endif | |
61 #ifndef HOTSPOT_BUILD_TARGET | |
62 #error HOTSPOT_BUILD_TARGET must be defined | |
63 #endif | |
64 | |
65 #ifdef PRODUCT | |
66 #define VM_RELEASE HOTSPOT_RELEASE_VERSION | |
67 #else | |
68 #define VM_RELEASE HOTSPOT_RELEASE_VERSION "-" HOTSPOT_BUILD_TARGET | |
69 #endif | |
70 | |
71 // HOTSPOT_RELEASE_VERSION must follow the release version naming convention | |
72 // <major_ver>.<minor_ver>-b<nn>[-<identifier>][-<debug_target>] | |
73 int Abstract_VM_Version::_vm_major_version = 0; | |
74 int Abstract_VM_Version::_vm_minor_version = 0; | |
75 int Abstract_VM_Version::_vm_build_number = 0; | |
76 bool Abstract_VM_Version::_initialized = false; | |
10
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
77 int Abstract_VM_Version::_parallel_worker_threads = 0; |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
78 bool Abstract_VM_Version::_parallel_worker_threads_initialized = false; |
0 | 79 |
80 void Abstract_VM_Version::initialize() { | |
81 if (_initialized) { | |
82 return; | |
83 } | |
84 char* vm_version = os::strdup(HOTSPOT_RELEASE_VERSION); | |
85 | |
86 // Expecting the next vm_version format: | |
87 // <major_ver>.<minor_ver>-b<nn>[-<identifier>] | |
88 char* vm_major_ver = vm_version; | |
89 assert(isdigit(vm_major_ver[0]),"wrong vm major version number"); | |
90 char* vm_minor_ver = strchr(vm_major_ver, '.'); | |
91 assert(vm_minor_ver != NULL && isdigit(vm_minor_ver[1]),"wrong vm minor version number"); | |
92 vm_minor_ver[0] = '\0'; // terminate vm_major_ver | |
93 vm_minor_ver += 1; | |
94 char* vm_build_num = strchr(vm_minor_ver, '-'); | |
95 assert(vm_build_num != NULL && vm_build_num[1] == 'b' && isdigit(vm_build_num[2]),"wrong vm build number"); | |
96 vm_build_num[0] = '\0'; // terminate vm_minor_ver | |
97 vm_build_num += 2; | |
98 | |
99 _vm_major_version = atoi(vm_major_ver); | |
100 _vm_minor_version = atoi(vm_minor_ver); | |
101 _vm_build_number = atoi(vm_build_num); | |
102 | |
103 os::free(vm_version); | |
104 _initialized = true; | |
105 } | |
106 | |
107 #if defined(_LP64) | |
108 #define VMLP "64-Bit " | |
109 #else | |
110 #define VMLP "" | |
111 #endif | |
112 | |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
113 #ifndef VMTYPE |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
114 #ifdef TIERED |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
115 #define VMTYPE "Server" |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
116 #else // TIERED |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
117 #ifdef ZERO |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
118 #ifdef SHARK |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
119 #define VMTYPE "Shark" |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
120 #else // SHARK |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
121 #define VMTYPE "Zero" |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
122 #endif // SHARK |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
123 #else // ZERO |
7154
5d0bb7d52783
changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents:
6948
diff
changeset
|
124 #ifdef GRAALVM |
6948
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
125 #define VMTYPE "Graal" |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
126 #else // GRAAL |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
127 #define VMTYPE COMPILER1_PRESENT("Client") \ |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
128 COMPILER2_PRESENT("Server") |
6948
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
129 #endif // GRAAL |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
130 #endif // ZERO |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
131 #endif // TIERED |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6795
diff
changeset
|
132 #endif |
0 | 133 |
134 #ifndef HOTSPOT_VM_DISTRO | |
135 #error HOTSPOT_VM_DISTRO must be defined | |
136 #endif | |
4005
2ef3386478e6
7096278: Update the VM name to indicate it is an embedded build
dholmes
parents:
3960
diff
changeset
|
137 #define VMNAME HOTSPOT_VM_DISTRO " " VMLP EMBEDDED_ONLY("Embedded ") VMTYPE " VM" |
0 | 138 |
139 const char* Abstract_VM_Version::vm_name() { | |
140 return VMNAME; | |
141 } | |
142 | |
143 | |
144 const char* Abstract_VM_Version::vm_vendor() { | |
145 #ifdef VENDOR | |
146 return XSTR(VENDOR); | |
147 #else | |
1800 | 148 return JDK_Version::is_gte_jdk17x_version() ? |
149 "Oracle Corporation" : "Sun Microsystems Inc."; | |
0 | 150 #endif |
151 } | |
152 | |
153 | |
154 const char* Abstract_VM_Version::vm_info_string() { | |
155 switch (Arguments::mode()) { | |
156 case Arguments::_int: | |
157 return UseSharedSpaces ? "interpreted mode, sharing" : "interpreted mode"; | |
158 case Arguments::_mixed: | |
159 return UseSharedSpaces ? "mixed mode, sharing" : "mixed mode"; | |
160 case Arguments::_comp: | |
161 return UseSharedSpaces ? "compiled mode, sharing" : "compiled mode"; | |
162 }; | |
163 ShouldNotReachHere(); | |
164 return ""; | |
165 } | |
166 | |
167 // NOTE: do *not* use stringStream. this function is called by | |
168 // fatal error handler. if the crash is in native thread, | |
169 // stringStream cannot get resource allocated and will SEGV. | |
170 const char* Abstract_VM_Version::vm_release() { | |
171 return VM_RELEASE; | |
172 } | |
173 | |
4890
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
174 // NOTE: do *not* use stringStream. this function is called by |
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
175 // fatal error handlers. if the crash is in native thread, |
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
176 // stringStream cannot get resource allocated and will SEGV. |
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
177 const char* Abstract_VM_Version::jre_release_version() { |
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
178 return JRE_RELEASE_VERSION; |
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
179 } |
c77d473e71f7
7132779: build-infra merge: Enable ccache to work for most developer builds.
ohrstrom
parents:
4005
diff
changeset
|
180 |
0 | 181 #define OS LINUX_ONLY("linux") \ |
182 WINDOWS_ONLY("windows") \ | |
3960 | 183 SOLARIS_ONLY("solaris") \ |
184 BSD_ONLY("bsd") | |
0 | 185 |
1010 | 186 #ifdef ZERO |
187 #define CPU ZERO_LIBARCH | |
188 #else | |
0 | 189 #define CPU IA32_ONLY("x86") \ |
190 IA64_ONLY("ia64") \ | |
191 AMD64_ONLY("amd64") \ | |
1681
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
192 ARM_ONLY("arm") \ |
126ea7725993
6953477: Increase portability and flexibility of building Hotspot
bobv
parents:
1552
diff
changeset
|
193 PPC_ONLY("ppc") \ |
0 | 194 SPARC_ONLY("sparc") |
1010 | 195 #endif // ZERO |
0 | 196 |
197 const char *Abstract_VM_Version::vm_platform_string() { | |
198 return OS "-" CPU; | |
199 } | |
200 | |
201 const char* Abstract_VM_Version::internal_vm_info_string() { | |
202 #ifndef HOTSPOT_BUILD_USER | |
203 #define HOTSPOT_BUILD_USER unknown | |
204 #endif | |
205 | |
206 #ifndef HOTSPOT_BUILD_COMPILER | |
207 #ifdef _MSC_VER | |
208 #if _MSC_VER == 1100 | |
209 #define HOTSPOT_BUILD_COMPILER "MS VC++ 5.0" | |
210 #elif _MSC_VER == 1200 | |
211 #define HOTSPOT_BUILD_COMPILER "MS VC++ 6.0" | |
212 #elif _MSC_VER == 1310 | |
645
c3a720eefe82
6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents:
196
diff
changeset
|
213 #define HOTSPOT_BUILD_COMPILER "MS VC++ 7.1 (VS2003)" |
0 | 214 #elif _MSC_VER == 1400 |
645
c3a720eefe82
6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents:
196
diff
changeset
|
215 #define HOTSPOT_BUILD_COMPILER "MS VC++ 8.0 (VS2005)" |
c3a720eefe82
6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents:
196
diff
changeset
|
216 #elif _MSC_VER == 1500 |
c3a720eefe82
6816308: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003
kvn
parents:
196
diff
changeset
|
217 #define HOTSPOT_BUILD_COMPILER "MS VC++ 9.0 (VS2008)" |
8757
9960dce2024f
8010116: Abstract_VM_Version::internal_vm_info_string() should recognize VS2010 and VS2012
kmo
parents:
7951
diff
changeset
|
218 #elif _MSC_VER == 1600 |
9960dce2024f
8010116: Abstract_VM_Version::internal_vm_info_string() should recognize VS2010 and VS2012
kmo
parents:
7951
diff
changeset
|
219 #define HOTSPOT_BUILD_COMPILER "MS VC++ 10.0 (VS2010)" |
9960dce2024f
8010116: Abstract_VM_Version::internal_vm_info_string() should recognize VS2010 and VS2012
kmo
parents:
7951
diff
changeset
|
220 #elif _MSC_VER == 1700 |
9960dce2024f
8010116: Abstract_VM_Version::internal_vm_info_string() should recognize VS2010 and VS2012
kmo
parents:
7951
diff
changeset
|
221 #define HOTSPOT_BUILD_COMPILER "MS VC++ 11.0 (VS2012)" |
0 | 222 #else |
223 #define HOTSPOT_BUILD_COMPILER "unknown MS VC++:" XSTR(_MSC_VER) | |
224 #endif | |
225 #elif defined(__SUNPRO_CC) | |
226 #if __SUNPRO_CC == 0x420 | |
227 #define HOTSPOT_BUILD_COMPILER "Workshop 4.2" | |
228 #elif __SUNPRO_CC == 0x500 | |
229 #define HOTSPOT_BUILD_COMPILER "Workshop 5.0 compat=" XSTR(__SUNPRO_CC_COMPAT) | |
230 #elif __SUNPRO_CC == 0x520 | |
231 #define HOTSPOT_BUILD_COMPILER "Workshop 5.2 compat=" XSTR(__SUNPRO_CC_COMPAT) | |
232 #elif __SUNPRO_CC == 0x580 | |
233 #define HOTSPOT_BUILD_COMPILER "Workshop 5.8" | |
234 #elif __SUNPRO_CC == 0x590 | |
235 #define HOTSPOT_BUILD_COMPILER "Workshop 5.9" | |
1547
fb1a39993f69
6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents:
1010
diff
changeset
|
236 #elif __SUNPRO_CC == 0x5100 |
fb1a39993f69
6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents:
1010
diff
changeset
|
237 #define HOTSPOT_BUILD_COMPILER "Sun Studio 12u1" |
0 | 238 #else |
239 #define HOTSPOT_BUILD_COMPILER "unknown Workshop:" XSTR(__SUNPRO_CC) | |
240 #endif | |
241 #elif defined(__GNUC__) | |
242 #define HOTSPOT_BUILD_COMPILER "gcc " __VERSION__ | |
243 #else | |
244 #define HOTSPOT_BUILD_COMPILER "unknown compiler" | |
245 #endif | |
246 #endif | |
247 | |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
248 #ifndef FLOAT_ARCH |
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
249 #if defined(__SOFTFP__) |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
250 #define FLOAT_ARCH_STR "-sflt" |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
251 #elif defined(E500V2) |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
252 #define FLOAT_ARCH_STR "-e500v2" |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
253 #elif defined(ARM) |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
254 #define FLOAT_ARCH_STR "-vfp" |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
255 #elif defined(PPC) |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
256 #define FLOAT_ARCH_STR "-hflt" |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
257 #else |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
258 #define FLOAT_ARCH_STR "" |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
259 #endif |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
260 #else |
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
261 #define FLOAT_ARCH_STR XSTR(FLOAT_ARCH) |
2192
b92c45f2bc75
7016023: Enable building ARM and PPC from src/closed repository
bobv
parents:
1972
diff
changeset
|
262 #endif |
0 | 263 |
7169
6b881a6b0665
8003591: Abstract_VM_Version::internal_vm_info_string needs to stringify FLOAT_ARCH for ease of use
dholmes
parents:
6856
diff
changeset
|
264 return VMNAME " (" VM_RELEASE ") for " OS "-" CPU FLOAT_ARCH_STR |
0 | 265 " JRE (" JRE_RELEASE_VERSION "), built on " __DATE__ " " __TIME__ |
266 " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER; | |
267 } | |
268 | |
2199
d8a72fbc4be7
7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents:
2192
diff
changeset
|
269 const char *Abstract_VM_Version::vm_build_user() { |
d8a72fbc4be7
7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents:
2192
diff
changeset
|
270 return HOTSPOT_BUILD_USER; |
d8a72fbc4be7
7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents:
2192
diff
changeset
|
271 } |
d8a72fbc4be7
7003401: Implement VM error-reporting functionality on erroneous termination
kamg
parents:
2192
diff
changeset
|
272 |
0 | 273 unsigned int Abstract_VM_Version::jvm_version() { |
274 return ((Abstract_VM_Version::vm_major_version() & 0xFF) << 24) | | |
275 ((Abstract_VM_Version::vm_minor_version() & 0xFF) << 16) | | |
276 (Abstract_VM_Version::vm_build_number() & 0xFF); | |
277 } | |
278 | |
279 | |
280 void VM_Version_init() { | |
281 VM_Version::initialize(); | |
282 | |
283 #ifndef PRODUCT | |
284 if (PrintMiscellaneous && Verbose) { | |
285 os::print_cpu_info(tty); | |
286 } | |
287 #endif | |
288 } | |
10
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
289 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
290 unsigned int Abstract_VM_Version::nof_parallel_worker_threads( |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
291 unsigned int num, |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
292 unsigned int den, |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
293 unsigned int switch_pt) { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
294 if (FLAG_IS_DEFAULT(ParallelGCThreads)) { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
295 assert(ParallelGCThreads == 0, "Default ParallelGCThreads is not 0"); |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
296 // For very large machines, there are diminishing returns |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
297 // for large numbers of worker threads. Instead of |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
298 // hogging the whole system, use a fraction of the workers for every |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
299 // processor after the first 8. For example, on a 72 cpu machine |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
300 // and a chosen fraction of 5/8 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
301 // use 8 + (72 - 8) * (5/8) == 48 worker threads. |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
302 unsigned int ncpus = (unsigned int) os::active_processor_count(); |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
303 return (ncpus <= switch_pt) ? |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
304 ncpus : |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
305 (switch_pt + ((ncpus - switch_pt) * num) / den); |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
306 } else { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
307 return ParallelGCThreads; |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
308 } |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
309 } |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
310 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
311 unsigned int Abstract_VM_Version::calc_parallel_worker_threads() { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
312 return nof_parallel_worker_threads(5, 8, 8); |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
313 } |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
314 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
315 |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
316 // Does not set the _initialized flag since it is |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
317 // a global flag. |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
318 unsigned int Abstract_VM_Version::parallel_worker_threads() { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
319 if (!_parallel_worker_threads_initialized) { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
320 if (FLAG_IS_DEFAULT(ParallelGCThreads)) { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
321 _parallel_worker_threads = VM_Version::calc_parallel_worker_threads(); |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
322 } else { |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
323 _parallel_worker_threads = ParallelGCThreads; |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
324 } |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
325 _parallel_worker_threads_initialized = true; |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
326 } |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
327 return _parallel_worker_threads; |
28372612af5e
6362677: Change parallel GC collector default number of parallel GC threads.
jmasa
parents:
0
diff
changeset
|
328 } |