[8u-dev] Request for approval for CR: 8164002: Add a new CPU family (S_family) for SPARC S7 and above processors
Kevin Walls
kevin.walls at oracle.com
Tue Apr 4 10:24:12 UTC 2017
Hi,
This is a request to backport this CR into 8u-dev:
8164002: Add a new CPU family (S_family) for SPARC S7 and above processors
JBS: https://bugs.openjdk.java.net/browse/JDK-8164002
9 changeset: http://hg.openjdk.java.net/jdk9/hs/hotspot/rev/bc41ec244c94
The hotspot change for 8 is pasted in below.
This is almost a straight import: in vm_version_sparc.hpp the enum
Feature_Flag does not have all the same elements as in jdk9, so that
part of the change (adding S_family and renumbering) needs to be
manually applied.
Thanks
Kevin
diff -r ef91cb539697 src/cpu/sparc/vm/vm_version_sparc.cpp
--- a/src/cpu/sparc/vm/vm_version_sparc.cpp Fri Mar 31 07:46:19 2017
-0700
+++ b/src/cpu/sparc/vm/vm_version_sparc.cpp Tue Apr 04 02:19:40 2017
-0700
@@ -449,9 +449,10 @@
unsigned int VM_Version::calc_parallel_worker_threads() {
unsigned int result;
- if (is_M_series()) {
- // for now, use same gc thread calculation for M-series as for
niagara-plus
- // in future, we may want to tweak parameters for
nof_parallel_worker_thread
+ if (is_M_series() || is_S_series()) {
+ // for now, use same gc thread calculation for M-series and
S-series as for
+ // niagara-plus. In future, we may want to tweak parameters for
+ // nof_parallel_worker_thread
result = nof_parallel_worker_threads(5, 16, 8);
} else if (is_niagara_plus()) {
result = nof_parallel_worker_threads(5, 16, 8);
@@ -475,6 +476,9 @@
} else if (strstr(impl, "SPARC-M") != NULL) {
// M-series SPARC is based on T-series.
features |= (M_family_m | T_family_m);
+ } else if (strstr(impl, "SPARC-S") != NULL) {
+ // S-series SPARC is based on T-series.
+ features |= (S_family_m | T_family_m);
} else if (strstr(impl, "SPARC-T") != NULL) {
features |= T_family_m;
if (strstr(impl, "SPARC-T1") != NULL) {
diff -r ef91cb539697 src/cpu/sparc/vm/vm_version_sparc.hpp
--- a/src/cpu/sparc/vm/vm_version_sparc.hpp Fri Mar 31 07:46:19 2017
-0700
+++ b/src/cpu/sparc/vm/vm_version_sparc.hpp Tue Apr 04 02:19:40 2017
-0700
@@ -47,13 +47,14 @@
cbcond_instructions = 13,
sparc64_family = 14,
M_family = 15,
- T_family = 16,
- T1_model = 17,
- sparc5_instructions = 18,
- aes_instructions = 19,
- sha1_instruction = 20,
- sha256_instruction = 21,
- sha512_instruction = 22
+ S_family = 16,
+ T_family = 17,
+ T1_model = 18,
+ sparc5_instructions = 19,
+ aes_instructions = 20,
+ sha1_instruction = 21,
+ sha256_instruction = 22,
+ sha512_instruction = 23
};
enum Feature_Flag_Set {
@@ -76,6 +77,7 @@
cbcond_instructions_m = 1 << cbcond_instructions,
sparc64_family_m = 1 << sparc64_family,
M_family_m = 1 << M_family,
+ S_family_m = 1 << S_family,
T_family_m = 1 << T_family,
T1_model_m = 1 << T1_model,
sparc5_instructions_m = 1 << sparc5_instructions,
@@ -105,6 +107,7 @@
// Returns true if the platform is in the niagara line (T series)
static bool is_M_family(int features) { return (features &
M_family_m) != 0; }
+ static bool is_S_family(int features) { return (features &
S_family_m) != 0; }
static bool is_T_family(int features) { return (features &
T_family_m) != 0; }
static bool is_niagara() { return is_T_family(_features); }
#ifdef ASSERT
@@ -152,6 +155,7 @@
static bool is_niagara_plus() { return
is_T_family(_features) && !is_T1_model(_features); }
static bool is_M_series() { return is_M_family(_features); }
+ static bool is_S_series() { return is_S_family(_features); }
static bool is_T4() { return
is_T_family(_features) && has_cbcond(); }
static bool is_T7() { return
is_T_family(_features) && has_sparc5_instr(); }
More information about the jdk8u-dev
mailing list