[8u-dev] Request for approval for CR: 8164002: Add a new CPU family (S_family) for SPARC S7 and above processors

Seán Coffey sean.coffey at oracle.com
Tue Apr 4 10:36:07 UTC 2017


Looks good Kevin. I've reviewed the edits but it's no harm to get a 
hotspot engineer to verify also.

Approved for jdk8u-dev.

regards,
Sean.

On 04/04/2017 11:24, Kevin Walls wrote:
> 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