[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