Update to qatlib 22.07

Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
This commit is contained in:
Giovanni Cabiddu 2022-07-22 08:40:52 -04:00
parent f0337a9db8
commit cd9a2fd3a8
8 changed files with 33 additions and 244 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
/qatlib-21.11.0.tar.gz
/qatlib-22.07.0.tar.gz

View File

@ -1,39 +0,0 @@
From 34de92337923a15ed46b064f53dc520d2a46a12c Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Thu, 24 Feb 2022 05:34:37 -0500
Subject: [PATCH 1/3] Fix INSTALL doc guidance for kernel to use for
compression
Previously specified 5.16+, actually at least 5.17 is needed.
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
INSTALL | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/INSTALL b/INSTALL
index b76d88c..1f8c3f5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -76,7 +76,7 @@ Check System Prerequisites
intel_qat
qat_4xxx
They should load by default if using any of the following:
- * Linux kernel v5.11+ (This is for crypto, for compression use v5.16+)
+ * Linux kernel v5.11+ (This is for crypto, for compression use v5.17+)
* Fedora 34+ (for compression use 36+)
* RHEL 8.4+ (for compression use 9.0+)
* BIOS settings
@@ -438,7 +438,7 @@ Common issues
Issue: "DC Instances are not present" error when trying to run
compression operations, e.g. using "cpa_sample_code runTests=32"
- Likely cause: QAT driver in Linux kernel before v5.16 doesn't support
+ Likely cause: QAT driver in Linux kernel before v5.17 doesn't support
compression service. Upgrade to a later kernel.
Issue: "Could not open corpus file: /usr/local/share/qat/calgary"
--
2.35.1

View File

@ -1,45 +0,0 @@
From 6b79a27e130f3be0fc2603637fa8923bf384f2e1 Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Thu, 24 Feb 2022 11:26:59 -0500
Subject: [PATCH 2/3] Update INSTALL doc with firmware load issue
Update INSTALL doc with info about failed firmware load
issue and likely cause.
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
INSTALL | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/INSTALL b/INSTALL
index 1f8c3f5..9ab5d98 100644
--- a/INSTALL
+++ b/INSTALL
@@ -455,6 +455,23 @@ Common issues
After updating re-login so the changes take effect:
sudo su -l $USER
+ Issue: error on make install
+ "Job for qat.service failed because the control process exited with
+ error code"
+ System logs (dmesg) show QAT kernel module failed with error like:
+ "4xxx 0000:6b:00.0: enabling device (0140 -> 0142)
+ QAT: authentication error (FCU_STATUS = 0x3),retry = 0
+ 4xxx 0000:6b:00.0: Failed to load MMP
+ 4xxx 0000:6b:00.0: Failed to load acceleration FW
+ 4xxx 0000:6b:00.0: Resetting device qat_dev0
+ 4xxx: probe of 0000:6b:00.0 failed with error -14"
+ Likely cause: firmware files not present in initramfs on module loading
+ early in boot process.
+ Fix: First make sure you have the firmware installed in /lib/firmware,
+ see pre-requisites section above. Then workaround with
+ "sudo rmmod qat_4xxx; sudo modprobe qat_4xxx; sudo systemctl start qat"
+ or fix for future reboots with "dracut --force" followed by a reboot.
+
===============================================================================
--
2.35.1

View File

@ -1,32 +0,0 @@
From 9ab0ce1230bd500fa1abd21e72b289e034b30be4 Mon Sep 17 00:00:00 2001
From: Patrick Patricelli <patrick.patricelli@intel.com>
Date: Thu, 24 Feb 2022 13:59:46 -0500
Subject: [PATCH 3/3] Update README.md
Update README.md to point to INSTALL file for details about the kernel
versions supported.
Signed-off-by: Patrick Patricelli <patrick.patricelli@intel.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index be9b19b..5b1505b 100644
--- a/README.md
+++ b/README.md
@@ -108,8 +108,8 @@ The following assumptions are made concerning the deployment environment:
memory regions.
* A QuickAssist kernel driver for the supported device is installed, which has
discovered and initialised the device, exposing the VFs. This driver is
- included in the Linux kernel from v5.11 though v5.16 and is necessary for
- compression services.
+ included in the Linux kernel, see [INSTALL](INSTALL) for information about which kernel
+ to use.
* The library can be used by unprivileged users if that user is included in
the 'qat' group.
--
2.35.1

View File

@ -1,44 +0,0 @@
From d9540ad27d5b53ff1ea9f728c47e4acf1480ec49 Mon Sep 17 00:00:00 2001
From: Vladis Dronov <vdronov@redhat.com>
Date: Tue, 22 Mar 2022 16:56:29 +0100
Subject: [PATCH] Fix hash_file_sample return code
So it does not return zero exit status unconditionally.
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
.../sym/hash_file_sample/cpa_hash_file_sample_user.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
index c9a8c5e..758d7bd 100644
--- a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
+++ b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
@@ -92,7 +92,7 @@ int main(int argc, const char **argv)
if (CPA_STATUS_SUCCESS != stat)
{
PRINT_ERR("Failed to initialize memory driver\n");
- return 0;
+ return (int)stat;
}
stat = icp_sal_userStartMultiProcess("SSL", CPA_FALSE);
@@ -100,7 +100,7 @@ int main(int argc, const char **argv)
{
PRINT_ERR("Failed to start user process SSL\n");
qaeMemDestroy();
- return 0;
+ return (int)stat;
}
gFileName = fileToHash;
@@ -118,5 +118,5 @@ int main(int argc, const char **argv)
qaeMemDestroy();
gFileName = NULL;
- return 0;
+ return (int)stat;
}
--
2.35.1

View File

@ -1,62 +0,0 @@
From e94a964a9c167e917496e63b5e379c327dd9b93f Mon Sep 17 00:00:00 2001
From: Vladis Dronov <vdronov@redhat.com>
Date: Tue, 22 Mar 2022 17:24:27 +0100
Subject: [PATCH] Make hash_file_sample to hash its own binary
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
.../hash_file_sample/cpa_hash_file_sample_user.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
index 758d7bd..38e0650 100644
--- a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
+++ b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
@@ -65,10 +65,12 @@
* @file cpa_hash_file_sample_user.c
*
*****************************************************************************/
+#include <limits.h>
+#include <unistd.h>
+
#include "cpa_sample_utils.h"
#include "icp_sal_user.h"
-#define FILE_NAME_LENGTH 100
char *gFileName = NULL;
extern CpaStatus hashFileSample(void);
@@ -78,7 +80,7 @@ int gDebugParam = 1;
int main(int argc, const char **argv)
{
CpaStatus stat = CPA_STATUS_SUCCESS;
- char fileToHash[FILE_NAME_LENGTH] = "hash_file_sample";
+ char fileToHash[PATH_MAX] = { 0 };
/* Read in debug setting if present */
if (argc > 1)
@@ -88,6 +90,13 @@ int main(int argc, const char **argv)
PRINT_DBG("Starting Hash File Sample Code App ...\n");
+ if (0 > readlink("/proc/self/exe", fileToHash, sizeof(fileToHash)))
+ {
+ PRINT_ERR("Failed to get path to a binary of self\n");
+ return 1;
+ }
+ gFileName = fileToHash;
+
stat = qaeMemInit();
if (CPA_STATUS_SUCCESS != stat)
{
@@ -102,7 +111,6 @@ int main(int argc, const char **argv)
qaeMemDestroy();
return (int)stat;
}
- gFileName = fileToHash;
stat = hashFileSample();
if (CPA_STATUS_SUCCESS != stat)
--
2.35.1

View File

@ -1,29 +1,22 @@
# SPDX-License-Identifier: MIT
%global libqat_soversion 2
%global libqat_soversion 3
%global libusdm_soversion 0
Name: qatlib
Version: 21.11.0
Release: 3%{?dist}
Version: 22.07.0
Release: 1%{?dist}
Summary: Intel QuickAssist user space library
# The entire source code is released under BSD.
# For a breakdown of inbound licenses see the INSTALL file.
License: BSD and (BSD or GPLv2)
URL: https://github.com/intel/%{name}
Source0: https://github.com/intel/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
BuildRequires: systemd gcc make autoconf automake libtool systemd-devel openssl-devel zlib-devel
BuildRequires: systemd gcc make autoconf automake libtool systemd-devel openssl-devel zlib-devel yasm
Requires(pre): shadow-utils
Recommends: qatlib-service
# https://bugzilla.redhat.com/show_bug.cgi?id=1897661
ExcludeArch: %{arm} aarch64 %{power64} s390x i686
%{?systemd_requires}
Patch0: 0001-Fix-INSTALL-doc-guidance-for-kernel-to-use-for-compr.patch
Patch1: 0002-Update-INSTALL-doc-with-firmware-load-issue.patch
Patch2: 0003-Update-README.md.patch
Patch3: 0004-Fix-hash_file_sample-return-code.patch
Patch4: 0005-Make-hash_file_sample-to-hash-its-own-binary.patch
%description
Intel QuickAssist Technology (Intel QAT) provides hardware acceleration
for offloading security, authentication and compression services from the
@ -52,6 +45,15 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description tests
This package contains sample applications that use the Intel QuickAssists APIs.
%package service
Summary: A daemon for qatlib resources management
Requires: %{name}%{?_isa} = %{version}-%{release}
%{?systemd_requires}
%description service
This package contains a daemon that manages QAT resources for the Intel
QuickAssist Technology user space library (qatlib).
%prep
%autosetup -p1
@ -68,18 +70,20 @@ sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
make DESTDIR=%{buildroot} samples-install
rm %{buildroot}/%{_libdir}/libqat.la
rm %{buildroot}/%{_libdir}/libusdm.la
rm %{buildroot}/%{_libdir}/libqat.a
rm %{buildroot}/%{_libdir}/libusdm.a
%pre
getent group qat >/dev/null || groupadd -r qat
exit 0
%post
%post service
%systemd_post qat.service
%preun
%preun service
%systemd_preun qat.service
%postun
%postun service
%systemd_postun_with_restart qat.service
%files
@ -87,11 +91,6 @@ exit 0
%license LICENSE*
%{_libdir}/libqat.so.%{libqat_soversion}*
%{_libdir}/libusdm.so.%{libusdm_soversion}*
%{_sbindir}/qatmgr
%{_sbindir}/qat_init.sh
%{_unitdir}/qat.service
%{_mandir}/man8/qat_init.sh.8*
%{_mandir}/man8/qatmgr.8*
%files devel
%{_libdir}/libqat.so
@ -122,7 +121,19 @@ exit 0
%{_datadir}/qat/calgary32
%{_datadir}/qat/canterbury
%files service
%{_sbindir}/qatmgr
%{_sbindir}/qat_init.sh
%{_unitdir}/qat.service
%{_mandir}/man8/qatmgr.8*
%{_mandir}/man8/qat_init.sh.8*
%changelog
* Fri Jul 22 2022 Giovanni Cabiddu <giovanni.cabiddu@intel.com> - 22.07.0-1
- Update to qatlib 22.07
- Removed patches as fixes are present in qatlib 22.07
- Moved qat.service to separate rpm
* Tue Mar 22 2022 Vladis Dronov <vdronov@redhat.com> - 21.11.0-3
- Fix small issues in qatlib-tests package
- Update documentation from the upstream

View File

@ -1 +1 @@
SHA512 (qatlib-21.11.0.tar.gz) = 740fa282ee540ba74e14ed07b4c79d3af239809c2b6216361b23ccc4787ee378a7a7c336c71087d4a1a59da22db7d5cdef7290ceb7f8e879feaf70f766119dfb
SHA512 (qatlib-22.07.0.tar.gz) = 66d7bb66070eaaa11d47637bb56dce1108ab72f66736f82af207c82bd2c552be80d24fcfb840c2cb41df57142559ab4c502fc4365f56db0c3aa994264d5105fa