summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorMin Zhou <zhoumin@loongson.cn>2023-05-01 17:19:43 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2023-05-01 17:19:43 +0800
commit1deb3b4a3808ec5b6c81b67ab603a8ade665360d (patch)
tree5beaece4961326b1d55f63668b00664e51f997ca /crypto
parenta2bb96ca05091240892a34519b8570d0b3dedfc8 (diff)
downloadlinux-crypto-1deb3b4a3808ec5b6c81b67ab603a8ade665360d.tar.gz
linux-crypto-1deb3b4a3808ec5b6c81b67ab603a8ade665360d.zip
LoongArch: crypto: Add crc32 and crc32c hw acceleration
With a blatant copy of some MIPS bits we introduce the crc32 and crc32c hw accelerated module to LoongArch. LoongArch has provided these instructions to calculate crc32 and crc32c: * crc.w.b.w crcc.w.b.w * crc.w.h.w crcc.w.h.w * crc.w.w.w crcc.w.w.w * crc.w.d.w crcc.w.d.w So we can make use of these instructions to improve the performance of calculation for crc32(c) checksums. As can be seen from the following test results, crc32(c) instructions can improve the performance by 58%. Software implemention Hardware acceleration Buffer size time cost (seconds) time cost (seconds) Accel. 100 KB 0.000845 0.000534 59.1% 1 MB 0.007758 0.004836 59.4% 10 MB 0.076593 0.047682 59.4% 100 MB 0.756734 0.479126 58.5% 1000 MB 7.563841 4.778266 58.5% Signed-off-by: Min Zhou <zhoumin@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig3
1 files changed, 3 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 9c86f704..a0e080d5 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -1395,6 +1395,9 @@ endif
if ARM64
source "arch/arm64/crypto/Kconfig"
endif
+if LOONGARCH
+source "arch/loongarch/crypto/Kconfig"
+endif
if MIPS
source "arch/mips/crypto/Kconfig"
endif