aboutsummaryrefslogtreecommitdiff
path: root/arch/loongarch/crypto/Kconfig
diff options
context:
space:
mode:
authorGravatar Min Zhou <zhoumin@loongson.cn> 2023-05-01 17:19:43 +0800
committerGravatar Huacai Chen <chenhuacai@loongson.cn> 2023-05-01 17:19:43 +0800
commit2f1648220214d18168e55920c21014e71c2d5bbc (patch)
tree093cd9506fa568b620c3c1c91f403c82506de6e6 /arch/loongarch/crypto/Kconfig
parentLoongArch: Add checksum optimization for 64-bit system (diff)
downloadlinux-2f1648220214d18168e55920c21014e71c2d5bbc.tar.gz
linux-2f1648220214d18168e55920c21014e71c2d5bbc.tar.bz2
linux-2f1648220214d18168e55920c21014e71c2d5bbc.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 'arch/loongarch/crypto/Kconfig')
-rw-r--r--arch/loongarch/crypto/Kconfig14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/loongarch/crypto/Kconfig b/arch/loongarch/crypto/Kconfig
new file mode 100644
index 000000000000..200a6e8b43b1
--- /dev/null
+++ b/arch/loongarch/crypto/Kconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0
+
+menu "Accelerated Cryptographic Algorithms for CPU (loongarch)"
+
+config CRYPTO_CRC32_LOONGARCH
+ tristate "CRC32c and CRC32"
+ select CRC32
+ select CRYPTO_HASH
+ help
+ CRC32c and CRC32 CRC algorithms
+
+ Architecture: LoongArch with CRC32 instructions
+
+endmenu