Skip to content

Commit 878b009

Browse files
jdschuetgcabiddu
authored andcommitted
Update README and INSTALL docs for 21.08 Release
Update documentation for QATlib 21.08 release. Signed-off-by: Schuetze, Joel D <[email protected]> Signed-off-by: Fiona Trahe <[email protected]> Signed-off-by: Giovanni Cabiddu <[email protected]>
1 parent 02bf1e4 commit 878b009

File tree

2 files changed

+77
-21
lines changed

2 files changed

+77
-21
lines changed

INSTALL

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
===============================================================================
22

33

4-
May 2021
4+
August 2021
55
===============================================================================
66

77

@@ -123,9 +123,10 @@ Compilation and installation - quickstart instructions
123123
sudo systemctl start qat
124124

125125
# Increase amount of locked memory for your user
126-
# To add 200MB:
126+
# Note: cpa_sample_code requires a mimimum of 500MB to run compression tests.
127+
# To add 500MB:
127128
sudo cp /etc/security/limits.conf /etc/security/limits.conf.qatlib_bak
128-
echo `whoami` - memlock 200000 | sudo tee -a /etc/security/limits.conf > /dev/null
129+
echo `whoami` - memlock 500000 | sudo tee -a /etc/security/limits.conf > /dev/null
129130

130131
# Re-login in order to update the user's group
131132
sudo su -l $USER
@@ -150,6 +151,7 @@ Compilation and installation - quickstart instructions
150151
./autogen.sh
151152
./configure
152153
make cpa_sample_code
154+
153155
# Compression sample code expects to find data files at a known location,
154156
# so call the samples-install target to put them there.
155157
sudo make samples-install
@@ -184,9 +186,10 @@ Compilation and installation - quickstart instructions
184186
sudo usermod -a -G qat `whoami`
185187

186188
# Increase amount of locked memory for your user
187-
# To add 200MB:
189+
# Note: cpa_sample_code requires a mimimum of 500MB to run compression tests.
190+
# To add 500MB:
188191
sudo cp /etc/security/limits.conf /etc/security/limits.conf.qatlib_bak
189-
echo `whoami` - memlock 200000 | sudo tee -a /etc/security/limits.conf > /dev/null
192+
echo `whoami` - memlock 500000 | sudo tee -a /etc/security/limits.conf > /dev/null
190193

191194
# Re-login in order to update the user group, this will move you back
192195
# into your home dir
@@ -252,9 +255,10 @@ Compilation and installation - detailed instructions
252255

253256
Set maximum amount of locked memory for your user.
254257
The maximum amount of locked memory should be set correctly by
255-
defining memlock limit. At least 200000 kB are required.
256-
Add a line like this
257-
<your user> - memlock 200000
258+
defining memlock limit. For cpa_sample_code running crypto at least
259+
200MB are required, if running compression set at least 500MB.
260+
To set 500MB add a line like this
261+
<your user> - memlock 500000
258262
in the file /etc/security/limits.conf.
259263

260264
After making user changes it's necessary to re-login for them to

README.md

Lines changed: 65 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
- [Environmental Assumptions](#environmental-assumptions)
1212
- [Examples](#examples)
1313
- [Open Issues](#open-issues)
14+
- [Resolved Issues](#resolved-issues)
1415
- [Licensing](#licensing)
1516
- [Legal](#legal)
1617
- [Terminology](#terminology)
@@ -19,6 +20,7 @@
1920

2021
| Date | Doc Revision | Version | Details |
2122
|----------|:-------------:|------:|:------|
23+
| August 2021 | 004 | 21.08 | - Added support for deflate compression - Compress and Verify (CnV) and Compress and Verify and Recover (CnVnR)<br>- Added Physical Function to Virtual Function (PFVF) communication support |
2224
| May 2021 | 003 | 21.05 | - Added support for AES-CCM 192/265<br>- Added support for SHA3-224/384/512 (no partials support)<br>- Added support for ChaCha20-Poly1305<br>- Added support for PKE 8K (RSA, DH, ModExp, ModInv)<br>- Fixed device enumeration on different nodes<br>- Fixed pci_vfio_set_command for 32 bit builds |
2325
| November 2020 | 002 | 20.10 | - Fixed service stopping during uninstallation<br>- Fixed "Cannot open /sys/kernel/iommu_groups/vfio/devices/" error<br>- Fixes based on static code analysis<br>- Fixes based on secure code reviews<br>- Refactored logging mechanism<br>- Updated library versioning scheme<br>- Improvements to make install target<br>- Fix so service file installed in /usr/lib64 can be properly detected<br>- Remove execute permissions from non-executable files<br>- Clarified documentation of licensing<br>- Removed libudev dependency from the package<br>- Removed OpenSSL/libcrypto extracts, instead link against system OpenSSL/libcrypto |
2426
| August 2020 | 001 | 20.08 | - Initial Release |
@@ -62,6 +64,10 @@ The following services are available in qatlib via the QuickAssist API:
6264
generation/verification up to 8192 bits
6365
* DSA parameter generation and digital signature generation/verification
6466
* Elliptic Curve Cryptography: ECDSA, ECDHE, Edwards Montgomery curves
67+
* Compression
68+
* Deflate
69+
* Compress and Verify (CnV)
70+
* Compress and Verify and Recover (CnVnR)
6571

6672
This package includes:
6773
* libqat: user space library for QAT devices exposed via the vfio kernel driver
@@ -79,17 +85,10 @@ Earlier generations of QAT devices (e.g. c62x, dh895xxcc, etc.) are not
7985
supported.
8086

8187
## Limitations
82-
* The library assumes a default configuration of sym and asym services on the
83-
device. This will not always be true as it depends on kernel driver
84-
configuration. If this library is used on a platform with different
85-
configuration, the capabilities will not be reported correctly and some
86-
operations will fail.
87-
8888
* If an error occurs on the host driver (Heartbeat, Uncorrectable error) it
8989
will not be communicated to the library.
9090

9191
The following features are not currently supported:
92-
* Data Compression Services
9392
* Dynamic instances
9493
* Intel® Key Protection Technology (KPT)
9594
* Event driven polling
@@ -107,9 +106,10 @@ The following assumptions are made concerning the deployment environment:
107106
controller, and by the operating system, prevent unauthorized access to these
108107
memory regions.
109108
* A QuickAssist kernel driver for the supported device is installed, which has
110-
discovered and initialised the device, exposing the VFs. Note, this driver
111-
will be included in a future linux kernel.
112-
* The library can be used by unprivilaged users if that user is included in
109+
discovered and initialised the device, exposing the VFs. This driver is
110+
included in the Linux kernel from v5.11 though v5.16 and is necessary for
111+
compression services.
112+
* The library can be used by unprivileged users if that user is included in
113113
the 'qat' group.
114114

115115
## Examples
@@ -118,7 +118,7 @@ package (quickassist/lookaside/access_layer/src/sample_code).
118118
Please refer to [Intel® QuickAssist Technology API Programmer's Guide](https:/01.org/sites/default/files/downloads//330684-009-intel-qat-api-programmers-guide.pdf).
119119

120120
## Open Issues
121-
Known and resolved issues relating to the Intel® QAT software are described
121+
Known issues relating to the Intel® QAT software are described
122122
in this section.
123123

124124
Issue titles follow the pattern:
@@ -139,8 +139,10 @@ where: \<Component\> is one of the following:
139139
| Issue ID | Description |
140140
|-------------|------------|
141141
| QATE-3241 | [CY - cpaCySymPerformOp when used with parameter checking may reveal the amount of padding.](#qate-3241) |
142-
| QATE-41707 | [CY - Incorrect digest returned when performing a plain hash operation on input data of size 4GB or larger. ](#qate-41707)
143-
142+
| QATE-41707 | [CY - Incorrect digest returned when performing a plain hash operation on input data of size 4GB or larger. ](#qate-41707) |
143+
| QATE-74786 | [DC - cpaDcDeflateCompressBound API returns incorrect output buffer size when input size exceeds 477218588 bytes.](#qate-74786) |
144+
| QATE-76073 | [GEN - If PF device configuration is modified without restarting qatmgr, undefined behavior may occur.](#qate-76073) |
145+
| QATE-76698 | [GEN- Multi-process applications running in guest will fail when running with default Policy settings .](#qate-76698) |
144146

145147
## QATE-3241
146148
| Title | CY - cpaCySymPerformOp when used with parameter checking may reveal the amount of padding. |
@@ -163,6 +165,54 @@ where: \<Component\> is one of the following:
163165
| Affected OS | Linux |
164166
| Driver/Module | CPM-IA - Crypto |
165167

168+
## QATE-74786
169+
| Title | DC - cpaDcDeflateCompressBound API returns incorrect output buffer size when input size exceeds 477218588 bytes. |
170+
|----------|:-------------
171+
| Reference # | QATE-74786 |
172+
| Description | When cpaDcDeflateCompressBound API is called with input size > 477218588 bytes incorrect buffer size is returned. For any buffer input size, the API should not produce output buffer size greater than the max limit (4 GB). |
173+
| Implication | Incorrect output buffer size is returned instead of error. |
174+
| Resolution | Ensure input buffer sizes are less than maximum limit size (477218588 bytes). |
175+
| Affected OS | Linux |
176+
| Driver/Module | CPM-IA - Data Compression |
177+
178+
## QATE-76073
179+
| Title | GEN - If PF device configuration is modified without restarting qatmgr, undefined behavior may occur. |
180+
|----------|:-------------
181+
| Reference # | QATE-76073 |
182+
| Description | When qatmgr is initialized, it reads the current configuration of the PF device. If the PF device configuration is modified without restarting the qatmgr, the updated device configuration is not comprehended by qatmgr. |
183+
| Implication | Undefined behavior may occur. |
184+
| Resolution | If PF device is reconfigured and reloaded, ensure to stop and start the qatmgr. |
185+
| Affected OS | Linux |
186+
| Driver/Module | CPM-IA - General |
187+
188+
## QATE-76698
189+
| Title | GEN - Multi-process applications running in guest will fail when running with default Policy settings. |
190+
|----------|:-------------
191+
| Reference # | QATE-76698 |
192+
| Description | The default Policy setting results in process receiving all available VFs allocated to guest operating system. In the case of a multi-process application, failures will be observed as all available QAT resources are consumed by the first process. |
193+
| Implication | Multi-process applications running in guest OS will fail with default Policy settings. |
194+
| Resolution | If more than 1 process is needed in a guest OS, set POLICY=n (where n>0) in /etc/sysconfig/qat and restart qatmgr. The process will then receive n VFs. |
195+
| Affected OS | Linux |
196+
| Driver/Module | CPM-IA - General |
197+
198+
## Resolved Issues
199+
Resolved issues relating to the Intel® QAT software are described
200+
in this section.
201+
202+
| Issue ID | Description |
203+
|-------------|------------|
204+
| QATE-76846 | [GEN - Forking and re-initialising use-cases do not work](#qate-76846) |
205+
206+
## QATE-76846
207+
| Title | GEN - Forking and re-initialising use-cases do not work |
208+
|----------|:-------------
209+
| Reference # | QATE-76846 |
210+
| Description | Forking and re-initialising use-cases do not work:<br>-icp_sal_userStart()/icp_sal_userStop()/icp_sal_userStart() in single process<br>-icp_sal_userStart()/fork()/icp_sal_userStart() in child.<br> This is the usecase in openssh + QAT_Engine. |
211+
| Implication | The process will have undefined behaviour in these use-cases. |
212+
| Resolution | This issue is resolved with the 21.08 release. If using release prior to this release and using these flows, call qaeMemDestroy() immediately after icp_sal_userStop() to prevent this issue. |
213+
| Affected OS | Linux |
214+
| Driver/Module | CPM-IA - General |
215+
166216
## Licensing
167217
* This product is released under the BSD-3-Clause.
168218

@@ -183,6 +233,8 @@ Copyright &copy; 2016-2021, Intel Corporation. All rights reserved.
183233
| BIOS | Basic Input/Output System |
184234
| BSD | Berkeley Standard Distribution |
185235
| CY | Cryptographic |
236+
| CnV | Compress and Verify |
237+
| CnVnR | Compress and Verify and Recover |
186238
| DC | Compression |
187239
| DMA | Direct Memory Access |
188240
| EFI | Extensible Firmware Interface |

0 commit comments

Comments
 (0)