[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