Recent changes (master)

Jens Axboe <[email protected]> Fri, 8 Aug 2025 06:00:01 -0600 (MDT)
Newsgroups org.kernel.vger.fio
Message-ID <[email protected]>
The following changes since commit b1b07c8dfbb562a949afd127d693e9c0cb009827:

  ioengines: bump version number (2025-08-05 15:56:45 -0600)

are available in the Git repository at:

  git://git.kernel.dk/fio.git master

for you to fetch changes up to f95cf49e1d2a8d2babb8aa385fb902d927533644:

  crc: use ISA-L for crc64 NVMe if available (2025-08-07 10:54:04 -0400)

----------------------------------------------------------------
Vincent Fu (1):
      crc: use ISA-L for crc64 NVMe if available

 configure   | 27 +++++++++++++++++++++++++++
 crc/crc64.c | 13 +++++++++++++
 2 files changed, 40 insertions(+)

---

Diff of recent changes:

diff --git a/configure b/configure
index 9e69dc4b..7a295eab 100755
--- a/configure
+++ b/configure
@@ -190,6 +190,7 @@ libnbd="no"
 libnfs=""
 xnvme=""
 isal=""
+isal64=""
 libblkio=""
 libzbc=""
 dfs=""
@@ -265,6 +266,8 @@ for opt do
   ;;
   --disable-isal) isal="no"
   ;;
+  --disable-isal64) isal64="no"
+  ;;
   --disable-libblkio) libblkio="no"
   ;;
   --disable-tcmalloc) disable_tcmalloc="yes"
@@ -326,6 +329,7 @@ if test "$show_help" = "yes" ; then
   echo "--enable-libnbd         Enable libnbd (NBD engine) support"
   echo "--disable-xnvme         Disable xnvme support even if found"
   echo "--disable-isal          Disable isal support even if found"
+  echo "--disable-isal64        Disable isal CRC64 support even if found"
   echo "--disable-libblkio      Disable libblkio support even if found"
   echo "--disable-libzbc        Disable libzbc even if found"
   echo "--disable-tcmalloc      Disable tcmalloc support"
@@ -2693,6 +2697,26 @@ fi
 print_config "isal" "$isal"
 fi
 
+##########################################
+# Check ISA-L CRC64 Rocksoft support
+cat > $TMPC << EOF
+#include <isa-l/crc64.h>
+#include <stddef.h>
+int main(void)
+{
+  return crc64_rocksoft_refl(0, NULL, 4096);
+}
+EOF
+if test "$isal64" != "no" ; then
+  if compile_prog "" "-lisal" "ISAL"; then
+    isal64="yes"
+    LIBS="-lisal $LIBS"
+  else
+    isal64="no"
+  fi
+fi
+print_config "isal CRC64" "$isal64"
+
 ##########################################
 # Check if we have libblkio
 if test "$libblkio" != "no" ; then
@@ -3338,6 +3362,9 @@ fi
 if test "$isal" = "yes" ; then
   output_sym "CONFIG_LIBISAL"
 fi
+if test "$isal64" = "yes" ; then
+  output_sym "CONFIG_LIBISAL64"
+fi
 if test "$libblkio" = "yes" ; then
   output_sym "CONFIG_LIBBLKIO"
   echo "LIBBLKIO_CFLAGS=$libblkio_cflags" >> $config_host_mak
diff --git a/crc/crc64.c b/crc/crc64.c
index c910e5b8..aae54f40 100644
--- a/crc/crc64.c
+++ b/crc/crc64.c
@@ -114,6 +114,17 @@ unsigned long long fio_crc64(const unsigned char *buffer, unsigned long length)
 	return crc;
 }
 
+#ifdef CONFIG_LIBISAL64
+#include <isa-l/crc64.h>
+
+unsigned long long fio_crc64_nvme(unsigned long long crc, const void *p,
+				  unsigned int len)
+{
+	return crc64_rocksoft_refl(crc, p, len);
+}
+
+#else
+
 /**
  * fio_crc64_nvme - Calculate bitwise NVMe CRC64
  * @crc: seed value for computation. 0 for a new CRC calculation, or the
@@ -134,3 +145,5 @@ unsigned long long fio_crc64_nvme(unsigned long long crc, const void *p,
 
 	return ~crc;
 }
+
+#endif