• Tianjia Zhang's avatar
    crypto: arm64/sm4 - add CE implementation for GCM mode · ae1b83c7
    Tianjia Zhang authored
    This patch is a CE-optimized assembly implementation for GCM mode.
    
    Benchmark on T-Head Yitian-710 2.75 GHz, the data comes from the 224 and 224
    modes of tcrypt, and compared the performance before and after this patch (the
    driver used before this patch is gcm_base(ctr-sm4-ce,ghash-generic)).
    The abscissas are blocks of different lengths. The data is tabulated and the
    unit is Mb/s:
    
    Before (gcm_base(ctr-sm4-ce,ghash-generic)):
    
    gcm(sm4)     |     16      64      256      512     1024     1420     4096     8192
    -------------+---------------------------------------------------------------------
      GCM enc    |  25.24   64.65   104.66   116.69   123.81   125.12   129.67   130.62
      GCM dec    |  25.40   64.80   104.74   116.70   123.81   125.21   129.68   130.59
      GCM mb enc |  24.95   64.06   104.20   116.38   123.55   124.97   129.63   130.61
      GCM mb dec |  24.92   64.00   104.13   116.34   123.55   124.98   129.56   130.48
    
    After:
    
    gcm-sm4-ce   |     16      64      256      512     1024     1420     4096     8192
    -------------+---------------------------------------------------------------------
      GCM enc    | 108.62  397.18   971.60  1283.92  1522.77  1513.39  1777.00  1806.96
      GCM dec    | 116.36  398.14  1004.27  1319.11  1624.21  1635.43  1932.54  1974.20
      GCM mb enc | 107.13  391.79   962.05  1274.94  1514.76  1508.57  1769.07  1801.58
      GCM mb dec | 113.40  389.36   988.51  1307.68  1619.10  1631.55  1931.70  1970.86
    Signed-off-by: default avatarTianjia Zhang <tianjia.zhang@linux.alibaba.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    ae1b83c7
sm4-ce-gcm-core.S 16.5 KB