• Tianjia Zhang's avatar
    crypto: arm64/sm4 - add CE implementation for cmac/xcbc/cbcmac · 6b5360a5
    Tianjia Zhang authored
    This patch is a CE-optimized assembly implementation for cmac/xcbc/cbcmac.
    
    Benchmark on T-Head Yitian-710 2.75 GHz, the data comes from the 300 mode of
    tcrypt, and compared the performance before and after this patch (the driver
    used before this patch is XXXmac(sm4-ce)). The abscissas are blocks of
    different lengths. The data is tabulated and the unit is Mb/s:
    
    Before:
    
    update-size    |      16      64     256    1024    2048    4096    8192
    ---------------+--------------------------------------------------------
    cmac(sm4-ce)   |  293.33  403.69  503.76  527.78  531.10  535.46  535.81
    xcbc(sm4-ce)   |  292.83  402.50  504.02  529.08  529.87  536.55  538.24
    cbcmac(sm4-ce) |  318.42  415.79  497.12  515.05  523.15  521.19  523.01
    
    After:
    
    update-size    |      16      64     256    1024    2048    4096    8192
    ---------------+--------------------------------------------------------
    cmac-sm4-ce    |  371.99  675.28  903.56  971.65  980.57  990.40  991.04
    xcbc-sm4-ce    |  372.11  674.55  903.47  971.61  980.96  990.42  991.10
    cbcmac-sm4-ce  |  371.63  675.33  903.23  972.07  981.42  990.93  991.45
    Signed-off-by: default avatarTianjia Zhang <tianjia.zhang@linux.alibaba.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    6b5360a5
sm4-ce-glue.c 21.7 KB