[aarch64-port-dev ] RFR: 8165404: AArch64: Implement SHA512 accelerator/intrinsic

Yangfei (Felix) felix.yang at huawei.com
Sat Jul 25 02:16:15 UTC 2020


Hi,

    Bug: https://bugs.openjdk.java.net/browse/JDK-8165404 
    Webrev: http://cr.openjdk.java.net/~fyang/8165404/webrev.00/ 

    This implement SHA-384/SHA-512 transformation using aarch64 v8.2 SHA512 Crypto Extensions.
    Reference implementation:
        https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/arm64/crypto/sha512-ce-core.S?h=v5.4.52

    We used QEMU system emulator which supports SHA512 instructions to test the functionality.
    SHA512 basic functionality is tested with: http://cr.openjdk.java.net/~fyang/8165404/SHA512.java 
    Patch passed jtreg tier1-3 test with QEMU system emulator.
    We've also verified it with full jtreg tests without SHA512 instructions on aarch64-linux-gnu, to make sure that there's no regression.

    We've also created a JMH for performance test: http://cr.openjdk.java.net/~fyang/8165404/TestSHA512.java 
    We measured the performance benefit with a cycle-accurate simulator.  
    Patch delivers more than 2x performance gain measured with the three different size message.

    Comments?

Thanks,
Felix


More information about the aarch64-port-dev mailing list