RFR(S): x86:8190934: Regressions on Haswell Xeon due to JDK-8178811

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Dec 14 18:43:32 UTC 2017


Note, my suggesting changes don't affect performance and other testing 
results. They are still valid because these changes are only refactoring.

Thanks,
Vladimir

On 12/14/17 10:32 AM, Vladimir Kozlov wrote:
> Thank you, Vivek
> 
> 1. You don't need new INCLUDE_CLEAR_UPPER_AVX. The main issue is UseAVX 
> flag is defined only on x86. You can use #ifdef X86 for that.
> 
> 2. You don't need next guard
> 
> +#if INCLUDE_CLEAR_UPPER_AVX
> +  clear_upper_avx();
> +#endif
> 
> if you define empty body in else case (using #ifdef X86):
> 
> +  void clear_upper_avx() {
> +#ifdef X86
> +    if (UseAVX >= 2) {
> +      C->set_clear_upper_avx(true);
> +    }
> +#endif
> +  }
> 
> 3. Factor next checks into one static method (similar to 
> clear_avx_size()) to avoid next repetitive checks in .ad file:
> 
> (C->max_vector_size() > 16 || C->clear_upper_avx() == true)
> 
> 4. remove unrelated change (empty line removed) in macroAssembler_x86.cpp
> 
> Thanks,
> Vladimir
> 
> On 12/13/17 11:22 PM, Deshpande, Vivek R wrote:
>> Hi Vladimir
>>
>> I have a fix for the slowdown observed on haswell due to jdk-8178811.
>>
>> The solution selectively generates vzeroupper when AVX2/ AVX512 
>> instructions have been executed and before the transition to SSE code.
>>
>> I tested this fix with the test case given with bug and SPECjbb2015.
>>
>> Could you please review and sponsor the patch?
>>
>> Webrev:
>>
>> http://cr.openjdk.java.net/~vdeshpande/8190934/webrev.00/
>>
>> I have also updated the bug: 
>> https://bugs.openjdk.java.net/browse/JDK-8190934
>>
>> Regards,
>>
>> Vivek
>>


More information about the hotspot-compiler-dev mailing list