RFR: JDK-8155618 aarch32: implement CRC32 intrinsics

Alex Kashchenko akashche at redhat.com
Thu Apr 28 22:34:05 UTC 2016


Hi Andrey,

On 04/28/2016 11:49 AM, Andrey Petushkov wrote:
> Dear Ed, All,
>
> Please consider the below patch to implement intrinsics for CRC32 functionality
> All 3 possible implementations are provided: generic cpu, neon and crc32 ARM v8 instruction based.
> The evaluated performance gain of the calculation itself is the following:
> cortex		a7		a8		a53
> c	123.487		132.013		309.565	
> asm	131.755	7%	141.297	7%	307.401	        -1%
> neon	118.91	-4%	159.718	21%	479.442	        55%
> crc32					1361.446	343%
> As you can see there is no benefit in using neon on Cortex A7 (and presumably A5). So neon is turned on by default only on Cortex A8 and above
>
> The above numbers are for CRC calculation itself, so elimination of JNI overhead provides additional benefit. E.g. on Cortex A7 the generic asm implementation gives the below benefit:
>
> buffer size	   + ops/s
> Xint	128	20.56%
>
> 512	18.06%
>
> 1024	14.66%
>
> 1048576	5.52%
>
>
>
> Xcomp Xbatch	128	77.85%
>
> 512	32.63%
>
> 1024	20.53%
>
> 1048576	6.59%
>
> The patch is here:
> http://cr.openjdk.java.net/~snazarki/8155618/ <http://cr.openjdk.java.net/~snazarki/8155618/>

I am getting the following error in bootcycle build with this patch on 
Raspberry Pi 3:

  - crash log: 
http://cr.openjdk.java.net/~akasko/aarch32/jdk8u/8155618/hs_err_pid13951.log
  - build log: 
http://cr.openjdk.java.net/~akasko/aarch32/jdk8u/8155618/201604280_rpi3_rpm.log.xz

I don't have any more details now, builds on all other devices are still 
in progress. This is the first time I see any problems with the build 
after prec1 change, so it may well be an incorrect patching or a 
hardware glitch.

-- 
-Alex


More information about the aarch32-port-dev mailing list