Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-3570 libcfs: accelerate crc32c with pclmulqdq
[fs/lustre-release.git]
/
libcfs
/
libcfs
/
linux
/
linux-crypto.c
diff --git
a/libcfs/libcfs/linux/linux-crypto.c
b/libcfs/libcfs/linux/linux-crypto.c
index
2e0c9b5
..
8398e9e
100644
(file)
--- a/
libcfs/libcfs/linux/linux-crypto.c
+++ b/
libcfs/libcfs/linux/linux-crypto.c
@@
-221,7
+221,7
@@
static void cfs_crypto_performance_test(unsigned char alg_id,
1000) / (1024 * 1024);
cfs_crypto_hash_speeds[alg_id] = (int)tmp;
}
1000) / (1024 * 1024);
cfs_crypto_hash_speeds[alg_id] = (int)tmp;
}
- CDEBUG(D_
INFO
, "Crypto hash algorithm %s speed = %d MB/s\n",
+ CDEBUG(D_
CONFIG
, "Crypto hash algorithm %s speed = %d MB/s\n",
cfs_crypto_hash_name(alg_id), cfs_crypto_hash_speeds[alg_id]);
}
cfs_crypto_hash_name(alg_id), cfs_crypto_hash_speeds[alg_id]);
}
@@
-262,38
+262,59
@@
static int cfs_crypto_test_hashes(void)
return 0;
}
return 0;
}
-static int
crc32,
adler32;
+static int adler32;
+#ifdef HAVE_CRC32
+static int crc32;
+#endif
#ifdef HAVE_PCLMULQDQ
#ifdef HAVE_PCLMULQDQ
+#ifdef NEED_CRC32_ACCEL
static int crc32pclmul;
#endif
static int crc32pclmul;
#endif
+#ifdef NEED_CRC32C_ACCEL
+static int crc32c_pclmul;
+#endif
+#endif
int cfs_crypto_register(void)
{
request_module("crc32c");
int cfs_crypto_register(void)
{
request_module("crc32c");
- crc32 = cfs_crypto_crc32_register();
adler32 = cfs_crypto_adler32_register();
adler32 = cfs_crypto_adler32_register();
+#ifdef HAVE_CRC32
+ crc32 = cfs_crypto_crc32_register();
+#endif
#ifdef HAVE_PCLMULQDQ
#ifdef HAVE_PCLMULQDQ
+#ifdef NEED_CRC32_ACCEL
crc32pclmul = cfs_crypto_crc32_pclmul_register();
#endif
crc32pclmul = cfs_crypto_crc32_pclmul_register();
#endif
-
+#ifdef NEED_CRC32C_ACCEL
+ crc32c_pclmul = cfs_crypto_crc32c_pclmul_register();
+#endif
+#endif
/* check all algorithms and do performance test */
cfs_crypto_test_hashes();
return 0;
}
void cfs_crypto_unregister(void)
{
/* check all algorithms and do performance test */
cfs_crypto_test_hashes();
return 0;
}
void cfs_crypto_unregister(void)
{
- if (crc32 == 0)
- cfs_crypto_crc32_unregister();
if (adler32 == 0)
cfs_crypto_adler32_unregister();
if (adler32 == 0)
cfs_crypto_adler32_unregister();
+#ifdef HAVE_CRC32
+ if (crc32 == 0)
+ cfs_crypto_crc32_unregister();
+#endif
#ifdef HAVE_PCLMULQDQ
#ifdef HAVE_PCLMULQDQ
+#ifdef NEED_CRC32_ACCEL
if (crc32pclmul == 0)
cfs_crypto_crc32_pclmul_unregister();
#endif
if (crc32pclmul == 0)
cfs_crypto_crc32_pclmul_unregister();
#endif
-
+#ifdef NEED_CRC32C_ACCEL
+ if (crc32c_pclmul == 0)
+ cfs_crypto_crc32c_pclmul_unregister();
+#endif
+#endif
return;
}
return;
}