Skip to content

Commit a9e5fcf

Browse files
fionatrahegcabiddu
authored andcommitted
QATlib: 24.09.0 release
Changes from 24.02.0 to 24.09.0: * Improved performance scaling in multi-thread applications (--enable-icp-thread-specific-usdm) * Set core affinity mapping based on NUMA node to improve performance (near-linear scaling) on multi-socket platforms * Bug fixes (See Resolved section in README.md) Signed-off-by: Fiona Trahe <[email protected]> Signed-off-by: Firos Sadarul <[email protected]>
1 parent d8ce710 commit a9e5fcf

File tree

135 files changed

+4703
-3510
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+4703
-3510
lines changed

INSTALL

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,14 @@ Web-based documentation for QATlib and related components is available at:
5454
Using the QATlib package
5555
========================
5656

57-
Note: Instructions assume running on Fedora and as non-root user who can
58-
get root access using sudo, i.e. user is in sudoers group. Command-lines
59-
may be different in other Linux distributions.
57+
Note: The build instructions provided are for RPM-based Linux distributions
58+
such as Fedora, Red Hat Enterprise Linux (RHEL), CentOS, and Rocky Linux.
59+
For Debian-based distributions like Debian and Ubuntu, refer to the
60+
installation guide at:
61+
https://intel.github.io/quickassist/qatlib/install.html#installing-from-sources
62+
These instructions assume operation as a non-root user with sudo
63+
privileges. Users on other distributions may need to adapt the command-lines
64+
accordingly.
6065

6166

6267
Check System Prerequisites
@@ -128,12 +133,25 @@ Check System Prerequisites
128133
-> Platform Configuration
129134
-> Miscellaneous Configuration
130135
-> SR-IOV Support
131-
* Grub settings
132-
set intel_iommu on in grub file, e.g. in Fedora:
133-
* sudo vi /etc/default/grub
134-
* to GRUB_CMDLINE_LINUX add "intel_iommu=on"
135-
* sudo grub2-mkconfig -o /etc/grub2-efi.cfg
136-
* sudo shutdown -r now
136+
* GRUB Configuration Updates
137+
- Step 1: Edit the GRUB configuration file.
138+
* Open the file with a text editor, for example, `sudo vi /etc/default/grub`.
139+
140+
- Step 2: Add the necessary parameters to the `GRUB_CMDLINE_LINUX` entry.
141+
* Enable Intel IOMMU by adding "intel_iommu=on". The line should look like:
142+
`GRUB_CMDLINE_LINUX="... intel_iommu=on"`.
143+
* Add VFIO-PCI device IDs. For a device with the ID 8086:4941, add
144+
"vfio-pci.ids=8086:4941". The line should look like:
145+
`GRUB_CMDLINE_LINUX="... vfio-pci.ids=8086:4941"`.
146+
* Refer to the list of supported devices at
147+
https://intel.github.io/quickassist/qatlib/requirements.html#supported-devices
148+
for other device IDs.
149+
150+
- Step 3: Update the GRUB configuration and reboot the system.
151+
* Generate a new GRUB configuration file:
152+
`sudo grub2-mkconfig -o /etc/grub2-efi.cfg`.
153+
* Reboot the system to apply the changes:
154+
`sudo shutdown -r now`.
137155

138156

139157
===============================================================================
@@ -182,7 +200,7 @@ Compilation and installation - quickstart instructions
182200

183201
# Install dependencies
184202
sudo dnf install -y gcc systemd-devel automake autoconf libtool
185-
sudo dnf install -y pkg-config openssl-devel zlib-devel nasm
203+
sudo dnf install -y pkg-config openssl-devel zlib-devel nasm numactl-devel
186204

187205
# Clone QATlib into ~/qatlib, i.e. in your home dir
188206
cd ~
@@ -249,6 +267,7 @@ Compilation and installation - detailed instructions
249267
libraries:
250268
openssl-devel
251269
zlib-devel
270+
numactl-devel
252271

253272
----------------------------------------------------------------------------
254273

@@ -699,6 +718,19 @@ Full list of Configuration options
699718
Enable deprecated legacy crypto algorithms. See the README.md
700719
for the list of algorithms which are deprecated by default.
701720

721+
--enable-icp-thread-specific-usdm
722+
USDM allocates and handles memory specific to threads.
723+
(For multi-thread apps, allocated memory information will be
724+
maintained separately for each thread; employs thread local storage
725+
feature i.e. TLS. It avoids locking that was needed when a global
726+
data structure being used in non thread-specific implementation).
727+
NOTE: Any memory allocated by a thread must be freed by the same
728+
thread. If it passes the memory to other threads for use, it's
729+
responsible for any synchronisation between those threads.
730+
The thread which did the allocation must live until after all
731+
threads using the memory are finished with it, as any thread
732+
memory not yet freed may be cleaned up on termination of the thread.
733+
702734
MAX_MR
703735
Number of Miller Rabin rounds for prime operations. Setting this
704736
to a smaller value reduces the memory usage required by the
@@ -714,6 +746,9 @@ Full list of Configuration options
714746
Common issues
715747
=============
716748

749+
Additional details are available at:
750+
https://intel.github.io/quickassist/qatlib/index.html
751+
717752
Issue: errors like these are seen in system logs:
718753
* 4xxx 0000:6b:00.0: IOMMU should be enabled for SR-IOV to work
719754
* vfio-pci: probe of 0000:6b:00.1 failed with error -22

Makefile.am

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ libadf_la_SOURCES = \
5757
quickassist/lookaside/access_layer/src/qat_direct/common/adf_process_proxy.c \
5858
quickassist/lookaside/access_layer/src/qat_direct/common/adf_user_cfg.c \
5959
quickassist/lookaside/access_layer/src/qat_direct/common/adf_user_device.c \
60-
quickassist/lookaside/access_layer/src/qat_direct/common/adf_user_dyn.c \
6160
quickassist/lookaside/access_layer/src/qat_direct/common/adf_user_ETring_mgr_dp.c \
6261
quickassist/lookaside/access_layer/src/qat_direct/common/adf_user_init.c \
6362
quickassist/lookaside/access_layer/src/qat_direct/common/adf_user_ring.c \
@@ -107,13 +106,20 @@ qatmgr_CFLAGS = -I$(srcdir)/quickassist/lookaside/access_layer/src/qat_direct/vf
107106
-D USER_SPACE \
108107
$(COMMON_FLAGS)
109108

110-
qatmgr_LDADD = -lpthread
109+
qatmgr_LDADD = -lpthread -lnuma
111110

112111
lib_LTLIBRARIES = lib@[email protected]
113112
lib@LIBUSDMNAME@_la_SOURCES = \
114113
quickassist/utilities/libusdm_drv/user_space/vfio/qae_mem_utils_vfio.c \
115114
quickassist/utilities/libusdm_drv/user_space/qae_mem_utils_common.c \
116115
quickassist/utilities/libusdm_drv/user_space/vfio/qae_mem_hugepage_utils_vfio.c
116+
if ICP_THREAD_SPECIFIC_USDM_AC
117+
lib@LIBUSDMNAME@_la_SOURCES += \
118+
quickassist/utilities/libusdm_drv/user_space/qae_mem_multi_thread_utils.c
119+
else
120+
lib@LIBUSDMNAME@_la_SOURCES += \
121+
quickassist/utilities/libusdm_drv/user_space/qae_mem_common.c
122+
endif
117123
lib@LIBUSDMNAME@_la_CFLAGS = -I$(srcdir)/quickassist/utilities/libusdm_drv \
118124
-I$(srcdir)/quickassist/utilities/libusdm_drv/include \
119125
-I$(srcdir)/quickassist/utilities/libusdm_drv/user_space \
@@ -221,6 +227,7 @@ lib@LIBQATNAME@_la_SOURCES = \
221227
quickassist/lookaside/access_layer/src/common/utils/sal_versions.c \
222228
quickassist/lookaside/access_layer/src/common/device/sal_dev_info.c \
223229
quickassist/lookaside/access_layer/src/user/sal_user.c \
230+
quickassist/lookaside/access_layer/src/user/sal_user_congestion_mgmt.c \
224231
quickassist/lookaside/access_layer/src/user/sal_user_dyn_instance.c
225232
if USE_CCODE_CRC
226233
lib@LIBQATNAME@_la_SOURCES += \
@@ -245,7 +252,7 @@ lib@LIBQATNAME@_la_CFLAGS = -I$(srcdir)/quickassist/utilities/libusdm_drv \
245252
-D USER_SPACE \
246253
-D LAC_BYTE_ORDER=__LITTLE_ENDIAN \
247254
$(COMMON_FLAGS)
248-
lib@LIBQATNAME@_la_LIBADD = libosal.la libadf.la lib@[email protected] -lcrypto
255+
lib@LIBQATNAME@_la_LIBADD = libosal.la libadf.la lib@[email protected] -lcrypto -lnuma
249256
if !USE_CCODE_CRC
250257
lib@LIBQATNAME@_la_LIBADD += crc32_gzip_refl_by8.lo crc64_ecma_norm_by8.lo
251258
endif
@@ -317,7 +324,9 @@ endif
317324

318325
dist_man_MANS = qat_init.sh.8 qatmgr.8
319326

320-
EXTRA_DIST = LICENSE \
327+
EXTRA_DIST = INSTALL README.md SECURITY.md LICENSE \
328+
filelist \
329+
versionfile \
321330
autogen.sh \
322331
quickassist/lookaside/firmware/include \
323332
quickassist/include \
@@ -327,6 +336,7 @@ EXTRA_DIST = LICENSE \
327336
quickassist/utilities/osal \
328337
quickassist/utilities/libusdm_drv/include \
329338
quickassist/utilities/libusdm_drv/user_space \
339+
quickassist/utilities/service/qat \
330340
quickassist/lookaside/access_layer/src/sample_code
331341

332342
DISTCHECK_CONFIGURE_FLAGS = \
@@ -401,6 +411,11 @@ else
401411
QAT_LEGACY_ALGORITHMS = n
402412
endif
403413

414+
if ICP_THREAD_SPECIFIC_USDM_AC
415+
ICP_THREAD_SPECIFIC_USDM = 1
416+
COMMON_FLAGS += -DICP_THREAD_SPECIFIC_USDM
417+
endif
418+
404419
include Samples.am
405420

406421
########################

0 commit comments

Comments
 (0)