RFR(XXS): 8235510 : java.util.zip.CRC32 performance drop after 8200067

Viswanathan, Sandhya sandhya.viswanathan at intel.com
Fri Dec 6 22:05:16 UTC 2019


Hi Vladimir,

It is only AVX512 evpclmulqdq() based CRC32 that is affected. 
In the updated webrev, I have changed the supports_vpclmulqdq() to supports_avx512_vpclmulqdq().

JBS: https://bugs.openjdk.java.net/browse/JDK-8235510
Updated webrev: http://cr.openjdk.java.net/~sviswanathan/8235510/webrev.01/

Best Regards,
Sandhya 

-----Original Message-----
From: Vladimir Kozlov <vladimir.kozlov at oracle.com> 
Sent: Friday, December 06, 2019 12:04 PM
To: Viswanathan, Sandhya <sandhya.viswanathan at intel.com>; hotspot compiler <hotspot-compiler-dev at openjdk.java.net>
Subject: Re: RFR(XXS): 8235510 : java.util.zip.CRC32 performance drop after 8200067

Hi Sandhya,

Ii is confusing after looking on this and 8200067 changes [1].
CPUID bit we check and supports_vpclmulqdq() function use 'vpclmulqdq' name but there is already such old AVX instruction [2] which is guarded by supports_clmul(). What actually 8200067 added and you are removing is evpclmulqdq instruction usage.
I think you should do renaming of CPUID bit and supports_vpclmulqdq() function to reflect that and avoid confusion.

Is vpclmulqdq also affected?

Thanks,
Vladimir

[1] http://cr.openjdk.java.net/~srukmannagar/ICL_crc32/webrev.02/
[2] http://hg.openjdk.java.net/jdk/jdk/file/1498cd1c98ad/src/hotspot/cpu/x86/assembler_x86.cpp#l7224

On 12/6/19 11:45 AM, Viswanathan, Sandhya wrote:
> The changes introduced in 8200067 cause performance to drop for java.util.zip.CRC32 on Intel platforms supporting vector pclmulqdq.
> An enhanced algorithm is needed which takes into account latency and throughput of vector pclmulqdq. For now, we need to backout the changes.
> 
> JBS: https://bugs.openjdk.java.net/browse/JDK-8235510
> Webrev: http://cr.openjdk.java.net/~sviswanathan/8235510/webrev.00/
> 
> Please review and approve.
> 
> Best Regards,
> Sandhya
> 


More information about the hotspot-compiler-dev mailing list