[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 11:28:40 UTC 2017


Great, thanks.  Thanks also David Buck who looked over it was well,

Cheers
Kevin


On 04/04/2017 11:36, Seán Coffey wrote:
> 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