Ensuring that Intel® QuickAssist Technology stack is working correctly on RHEL
Environment
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Red Hat Enterprise Linux 10
Intel® QuickAssist Technology Library (QATlib) contains user space libraries that allow access for Intel® QAT devices. The libraries also expose Intel® QAT APIs and sample code. To get QATlib up and running:
-
Create the
qat
user group.$ sudo groupadd qat
-
Add your user to the
qat
group to use QATlib functionalities as non-root user.$ sudo usermod -a -G qat <YOUR_USER>
-
Set the maximum amount of locked memory for your user to 200MB.
# echo `whoami` - memlock 200000 >> /etc/security/limits.conf
-
Add the
intel_iommu=on
parameter to the kernel command-line.$ sudo grubby --update-kernel=ALL --args="intel_iommu=on"
-
Make sure you have the needed firmware files
qat_4xxx.bin
andqat_4xxx_mmp.bin
. We already ship these with thelinux-firmware
package since versions20230404-114.git2e92a49f.el8_8
or20230310-133.el9_2
. It is sufficient to just update this package and reboot if needed. -
If the driver did not load automatically after reboot, load it manually.
$ modprobe qat_4xxx
Verify that the
qat_4xxx
firmware was loaded correctly.$ dmesg -i -e | grep qat_4xxx
-
Enable and start the
qat
service and verify the service is running correctly.$ sudo systemctl enable --now qat $ systemctl is-enabled qat && systemctl is-active qat enabled active
Additional configuration and fine-tuning
It may be necessary to reconfigure QAT device(s) with the following (unsupported, unshipped) Intel script used to control the qatlib stack:
https://intel.github.io/quickassist/_downloads/74bdfa2cd6bb4987b51a4f550d8f26ba/qat
mentioned in the following Intel documentation:
https://intel.github.io/quickassist/qatlib/configuration.html
and follow this configuration guide in general. This can be necessary due to the following error (zero engines are configured for de/compression):
[error] cpaDcGetInstances() - : Invalid API Param - numInstances is 0
To use the above script, download the script and run:
dnf install -y python3 python3-prettytable python3-packaging
### OR (if python3-prettytable or python3-packaging are not available)
dnf install -y python3 python3-pip
pip3 install prettytable packaging
python3 qat --status
python3 qat --config
python3 qat --status
Additional resources about utilities from the QAT ecosystem:
For more information about installing QATlib, see the GitHub qatlib/INSTALL page.
For more information about the QATlib technology in general, see Intel® QuickAssist Technology Library (QATlib).
For introduction and description of the QAT OpenSSL Engine, see Intel® QuickAssist Technology(QAT) OpenSSL* Engine.
For introduction and description of the QATzip library, see Intel® QuickAssist Technology (QAT) QATzip Library.
For list if supported devices, see Supported Devices.
Intel QAT Configuration and Tuning Guide.
Comments