Release Updates
Known Issues
QATE20-8981 [Sample Code] sym_dp_update_sample Functional Sample Code application execution will fail
Title |
[Sample Code] sym_dp_update_sample Functional Sample Code application execution will fail |
Reference |
QATE20-8981 |
Description |
CPM2.0 hardware does not support the wireless Kasumi F8 algorithm and the associated sample code application will fail. |
Implication |
The sym_dp_update_sample functional applications will fail with the following output: main(): Starting Sym Dp Update Sample Code App … symDpUpdateSample(): cpaCyStartInstance initSession(): cpaCySymDpSessionCtxGetSize initSession(): cpaCySymDpInitSession [error] LacSymSession_ParamCheck() - : Invalid API Param - cipherAlgorithm |
Resolution |
This will not be resolved as the CPM2.0 hardware does not support this algorithm. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Symmetric |
QATE20-9131 [DC] - Incorrect XXHASH32 can be generated when using error injection and buffer overflow occurs when using accumulated XXHASH32
Title |
[DC] - Incorrect XXHASH32 can be generated when using error injection and buffer overflow occurs when using accumulated XXHASH32 |
Reference |
QATE20-9131 |
Description |
When using Data Compression service with LZ4 accumulated XXHASH32 sessions in conjunction with Error Injection the service will not trigger Recovery mode but shall return a CPA_DC_VERIFY_ERROR error instead. |
Implication |
Recovery mode will not trigger for LZ4 with Error Injection and instead return a Verify error: -18 CPA_DC_VERIFY_ERROR. |
Resolution |
Future Fix |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-9671 [DC] - Accumulated XXHash32 is not supported for LZ4 decompress operations
Title |
[DC] - Accumulated XXHash32 is not supported for LZ4 decompress operations |
Reference |
QATE20-9671 |
Description |
Accumulated XXHash32 enables the calculation of a final XXHash32 that is accumulated across all previous requests in a stream. This feature is available for the Compress direction only. The decompression flow is not finalized and not currently functional. |
Implication |
Accumulated XXHash32 is functional for the Compression direction only. |
Resolution |
Future Fix |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-19310 [DC] Additional configuration required to enable 8K data decompression performance
Title |
[DC] - Additional configuration required to enable 8K data decompression performance |
Reference |
QATE20-19310 |
Description |
To utilize compression HW slices to full potential while symmetric service enabled a modified policy needs to be applied for this mode of operation. |
Implication |
Decompression performance is not fully realized and limited to ~83% for 8K compressed payloads. |
Resolution |
This issue can be resolved by modifying ./quickassist/ qat/drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c:50 and changing dc_me_active_thd_mask = 0x03; to dc_me_active_thd_mask = 0x01; and then recompile. This modification is for the singular use case where decompression performance at 8K is payloads is required. This will be addressed in a future release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QAT20-21905 SVM/AT cannot be enabled when PRS is disabled
Title |
SVM/AT cannot be enabled when PRS is disabled. |
Reference |
QATE20-21905 |
Description |
Shared Virtual Memory(SVM) with Address translation (AT) requires Page Request Support (PRS) to be enabled in BIOS. PRS is disabled by default. |
Implication |
The following error signatures maybe observed if application attempts to use SVM with AT when PRS is disabled: |
Following error code is returned an calls to the QAT APIs: Unable to get the physical address of the client buffer |
|
Following message displayed in dmesg when running applications using the QAT APIs: DMAR: [DMA Read] Request device [75:00.1] PASID ffffffff fault addr 7fb0c81c0000 [fault reason 113] SM: Present bit in first-level paging entry is clear |
|
Some Telemetry data is not updated in this configuration. |
|
Resolution |
PRS should be enabled. For this release, user can enable PRS in BIOS by updating the following setting to Enabled: Socket Configuration->IIO Configuration->Intel VT for Directed I/O (VT-d)->Opt-Out Illegal MSI Mitigation This will be addressed in a future release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - General |
QATE20-21751 [VIRT] - Missing VFs on host when attaching to VMs
Title |
[VIRT] - Missing VFs on host when attaching to VMs |
Reference |
QATE20-21751 |
Description |
When listing VFs on the host with any amount of VFs attached to a virtual machine, you may see missing VFs reported on the host. |
Implication |
For every virtual machine with an attached VF you may observe two less VFs reported on the host. |
Resolution |
When assigning a VF to a virtual machine always start with the ones with the highest BDF and work back. This workaround ensures no missing VFs on the host. This will be addressed in a future release. |
Affected OS |
Linux |
Driver/Module |
4xxx Kernel module |
QATE20-22999 [Sample Code] Functional sample applications will fail if service is not enabled on first QAT Endpoint
Title |
[Sample Code] Functional sample applications will fail if service is not enabled on first QAT Endpoint |
Reference |
QATE20-22999 |
Description |
When sample application is executed which requests service that is not enabled on the first endpoint, the application will fail. |
Implication |
If first endpoint is configured with asym, running application that uses symmetric such as ccm_sample will fail with following error signatures even if other endpoints enable symmetric crypto. # ./ccm_sample main(): Starting CCM Sample Code App … algChainSample(): cpaCyStartInstance algChainSample(): Generation-Encryption Process algChainSample(): cpaCySymSessionCtxGetSize CCM encrypt [error] cpaCySymSessionCtxGetSize() - : The instance handle is the wrong type algChainSample(): cpaCyStopInstance algChainSample(): Sample code failed with status of -1 |
Resolution |
Workaround is to enable necessary service on the first endpoint. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Symmetric |
QAT20-18924 [MCC] MCC SKUs may consume more power than expected
Title |
[MCC] MCC SKUs may consume more power than expected |
Reference |
QAT20-18924 |
Description |
Due to Power Management changes in MCC platforms one QAT device in every socket is permanently clock gated when not processing requests which leads to inevitable heartbeat failures and device resets. Current FW workaround increases power consumption by keeping QAT in active state. Intel is working on workaround that does not have impact on power consumption. |
Implication |
Higher power consumption is possible |
Resolution |
This is no workaround currently available. |
Affected OS |
Linux |
Driver/Module |
QAT Firmware |
QAT20-20272 [XCC/MCC] Spurious heartbeat failures may be observed on some SKUs
Title |
[XCC/MCC] Spurious heartbeat failures may be observed on some SKUs |
Reference |
QAT20-20272 |
Description |
Time tracking in FW is inaccurate due to power management causing that frequency of HW counter that is used as reference for time measurements appears lower than expected. This may lead to delayed heartbeat and telemetry updates when devices become idle. Intel is working on workaround that removes dependency on the HW counter. |
Implication |
No functional impact, these messages can be ignored. |
Resolution |
This is no workaround currently available. |
Affected OS |
Linux |
Driver/Module |
QAT Firmware |
QAT20-24970 [Firmware] Potential false positive heartbeat failures
Title |
[Firmware] Potential false positive heartbeat failures |
Reference |
QAT20-24970 |
Description |
When a QAT device is fully utilized and is processing requests with large payloads (e.g. >512MB), false positive heartbeat failures may be reported if the heartbeat check interval is set too low. |
Implication |
Processing multiple requests with big payload sizes may cause false positive heartbeat failure and trigger PF restart. |
Resolution |
This issue can be resolved by ensuring that heartbeat interval is large enough to allow big payload request be correctly processed. Recommended minimal heartbeat interval value to be used is 1500 ms. This issue will be addressed in future release. |
Affected OS |
All |
Driver/Module |
QAT Firmware |
QAT20-23946 [SVM/IOMMU] Request issue doesn’t appear in response
Title |
[SVM/IOMMU] Request issue doesn’t appear in response |
Reference |
QAT20-23946 |
Description |
Without Address Translation (AT) enabled, QAT hardware can’t reliably handle page faults on write operations to invalid memory addresses. This may lead to situations where the operation does not complete properly and error is not reported to user. Only IOMMU pagefault is reported to the user in this case. This does not result in system memory corruption. |
Implication |
User is responsible for making sure that all destination addresses submitted to HW are valid. Also verify that SW doesn’t generate IOMMU pagefaults. |
Resolution |
Enable AT for SVM/IOMMU use cases. |
Affected OS |
All |
Driver/Module |
QAT Firmware |
QAT20-28723 [SVM/IOMMU] Incorrect reporting slice timeout due to page request latency
Title |
[SVM/IOMMU] Incorrect reporting slice timeout due to page request latency |
Reference |
QAT20-28723 |
Description |
When using Shared Virtual Memory and Address Translation and system is overloaded or is running out of free memory it may take longer time to process Page Requests. As side effect DRAM transaction originating from QAT that will require Page Request also will take longer to complete. In this case it may happen that slice watchdog will timeout, due to firmware waiting for new data to be read and then passed to the slice. |
Implication |
Request processing interrupted due to slice watchdog timeout. |
Resolution |
There is no workaround available. |
Affected OS |
Linux |
Driver/Module |
QAT Firmware |
QAT20-30635 [VIRT] PF/VF communication fails after attaching VF to guest and rebooting guest OS; performance may also suffer
Title |
[VIRT] PF/VF communication fails after attaching VF to guest and rebooting guest OS; performance may also suffer |
Reference |
QAT20-30635 |
Description |
PF/VF communication may fail after attaching a VF to a guest VM and rebooting the guest OS. This issue is observed on RHEL 9.2 and not on older versions. The cause is related to a significant latency in interrupt handling on the KVM/QEMU side for the specific kernel version. Kernel error messages may include the following: 4xxxvf 0000:04:00.0: IOV response message timeout 4xxxvf 0000:04:00.0: CRC error on msg type 2. Local 25, remote 62 4xxxvf 0000:04:00.0: QAT: Failed adf_iov_block_get When using Shared Virtual Memory and Address Translation |
Implication |
The issue may cause the guest VM to hang or become unreachable during the QAT driver installation on the guest. The performance of epoll mode on the guest is dramatically reduced. |
Resolution |
This issue cannot be resolved within the driver. A workaround is to increase the interrupt waiting and polling times, but this may lead to longer VF startup times. It is advised to use an alternative kernel version for optimal performance. |
Affected OS |
Linux |
Driver/Module |
N/A |
QAT20-25341 [RL] - Service Level Agreements (SLAs) may not be met with multiple services enabled on a Physical Function (PF)
Title |
[RL] - Service Level Agreements (SLAs) may not be met with multiple services enabled on a Physical Function (PF) |
Reference |
QAT20-25341 |
Description |
With more than one service on a PF, Service Level Agreement (SLA) allocations may not be met. |
Implication |
The issue could affect the performance of the system when using the combination of services in a specific configuration. |
Resolution |
Future Fix |
Affected OS |
Linux |
Driver/Module |
QAT IA - Rate Limiting |
Resolved Issues
QATE20-3331 [Sample Code] Functional Sample Code Compression applications execution will fail
Title |
[Sample Code] Functional Sample Code Compression applications execution will fail |
Reference |
QATE20-3331 |
Description |
Due to internal implementation details of QAT2.0 Data Compression, there are additional constraints on the expected output buffer sizes for compression operation. The current output buffer sizes are not sufficiently large enough to accommodate the compression operations involved. This will be addressed in later software releases where an API will be made available to determine at runtime the correct output buffer size to be allocated. |
Implication |
These functional applications will fail with the following output: ./dc_dp_sample: [error] dcCompression_ProcessCallback() - : Unrecoverable error: stateless overflow. You may need to increase the size of your destination buffer ./dc_stateless_multi_op_sample: [error] dcCheckDestinationData() - : Invalid API Param - Destination buffer size should be greater or equal to 512 bytes ./dc_stateless_sample: compPerformOp(): Results status not as expected (status = -11) |
Resolution |
This is resolved with the 0.5.5 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Compression |
QATE20-9755 [SRIOV] RLT_ERRLOG may be reported under high concurrent loads
Title |
[SRIOV] RLT_ERRLOG may be reported under high concurrent loads |
Reference |
QATE20-9755 |
Description |
The following error may be reported when running high concurrency loads on Virtual Machines: 4xxx 0000:6b:00.0: AT_GLOBA L0_PAR_STS[0], 00000000, AT_GLOBAL1_PAR_STS[0], 00000000, AT_PAR_STS[0], 00000000 … 4xxx 0000:6b:00.0: RLT_ERRLOG[0],00000001, UERRSSMSHAD[0],00000000,xxxvf 0000:6b:00.7: Fatal error received from PF 0x1 This relates a counter flow and does not have a functional impact to the operation of SR-IOV Virtual Functions. |
Implication |
Additional debug prints in dmesg may be observed. |
Resolution |
This is resolved with the 0.5.5 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Virtualization |
QATE20-9669 [DC] - Deflate Dynamic Decompression not optimized for payloads of source length < 4K, destination length <= 16K
Title |
[DC] - Deflate Dynamic Decompression not optimized for payloads of source length < 4K, destination length <= 16K |
Reference |
QATE20-9669 |
Description |
Current data path operations are not optimized for all traffic profiles. |
Implication |
Expected performance profile for this release does not meet expectations. This can be observed with performance sample code when using 8K payloads that are compressed in HW and where throughput metrics are then reported for the decompress direction. |
Resolution |
This is resolved with the 0.5.5 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-9394 [SRIOV] Virtual Functions (VFs) are not automatically detached by hypervisor after Physical Function (PF) restart
Title |
[SRIOV] Virtual Functions (VFs) are not automatically detached by hypervisor after Physical Function (PF) restart |
Reference |
QATE20-9394 |
Description |
The following error may be encountered when attempting to detach SR-IOV VFs: error: Failed to detach device pci_0000_6b_00_1 error: Requested operation is not valid: PCI device 0000:6b:00.1 is in use by driver QEMU, domain <name> |
Implication |
VFs are not automatically detached by hypervisor after PF restart, requiring a VM shutdown. |
Resolution |
This is resolved with the 0.5.5 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Virtualization |
QATE20-3860 [SR-IOV] Virtual Functions (VFs) require restart after changing Physical Function (PF) Service configuration
Title |
[SR-IOV] Virtual Functions(VFs) require restart after changing Physical Function(PF) Service configuration |
Reference |
QATE20-3860 |
Description |
Each QAT PF is configured with at most 2 services (Symmetric Crypto, PKE, Data Compression), this is shared with all VFs on the same PCIe endpoint whereby default each PF is configured to use Symmetric + Data Compression services. If a change in enabled services is required then the normal operating procedure is to reconfigure PF and re-create the VFs. |
Implication |
Following PF and associated VF reconfiguration ./adf_ctl status may report all VFs being operational, however applications can report: ADF_UIO_PROXY err: icp_adf_userProcessToStart: Error reading /dev/qat_dev_processes file. |
Resolution |
This is resolved with the 0.5.5 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - SRIOV - PF/VF comms |
QATE20-10981 [DC] EOLB incorrectly set during stateful decompression
Title |
[DC] EOLB incorrectly set during stateful decompression |
Reference |
QATE20-10981 |
Description |
The application that performs the decompression may stop decompressing the remaining deflate blocks if it is testing the endOfLastBlock field in CpaDcRqResults structure. |
Implication |
The application that performs the decompression may stop decompressing the remaining deflate blocks if it is testing the endOfLastBlock field in CpaDcRqResults structure. |
Resolution |
This is resolved with the 0.8.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT FW - Compression |
QAT20-10966 DC - Invalid checksum value returned with multi-Gzip payload
Title |
DC - Invalid checksum value returned with multi-Gzip payload |
Reference |
QAT20-10966 |
Description |
The issue happens with stateless decompression when submitting a payload with multiple GZip frames. During the decompression of the second GZip frame, the checksum returned by QAT device is incorrect. It does not match the CRC32 checksum reported in the Gzip footer. |
Implication |
The application will fail to validate the checksum of the decompressed data against the checksum in the GZip footer. |
Resolution |
This is resolved with the 0.8.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Compression |
QATE20-9756 [DC] - autoSelectBestHuffmanTree flag parameter is not honored by acceleration library
Title |
[DC] - autoSelectBestHuffmanTree flag parameter is not honored by acceleration library |
Reference |
QATE20-9756 |
Description |
The autoSelectBestHuffmanTree parameter in CpaDcSessionSetupData is treated as FALSE by acceleration library. |
Implication |
Applications cannot currently set autoSelectBestHuffmanTree. This could result in lower compressibility. |
Resolution |
This is resolved with the 0.8.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-11081 [DC] - API cpaDcResetSession() does not reset E2E internal structure
Title |
[DC] - API cpaDcResetSession() does not reset E2E internal structure |
Reference |
QATE20-11081 |
Description |
The issue happens with stateless decompression when submitting a payload with multiple GZip frames. If the application calls cpaDcResetSession() API after the first Gzip frame has been processed. It will not reset the various checksums defined in dc_integrity_crc_fw_t. |
Implication |
Application will see unexpected checksums after calling cpaDcResetSession() API. |
Resolution |
This is resolved with the 0.8.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-9501 [DC] - Overflow can occur when using output buffer sizes defined by the cpaDcCompressBound API with Dynamic Deflate compression operations under concurrent execution
Title |
[DC] - Overflow can occur when using output buffer sizes defined by the cpaDcCompressBound API with Dynamic Deflate compression operations under concurrent execution |
Reference |
QATE20-9501 |
Description |
The internal calculation for optimal output buffer size for a given input and session configuration when using the cpaDcCompressBound API can yield overflow conditions. This has been observed under concurrent SW thread execution in particular with LZ4s and Dynamic Deflate requests being concurrently processed. |
Implication |
An application using the cpaDcCompressBound API may require overflow handling until the refinement of the algorithm completes. |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-9764 [DC] - XXHash32 Checksum is not correct on Overflow when Flush Final is set
Title |
[DC] - XXHash32 Checksum is not correct on Overflow when Flush Final is set |
Reference |
QATE20-9764 |
Description |
When the Accumulated XXHash is used, for the last request if the CPA_DC_OVERFLOW (-11) occurs, this ceases checksum accumulation. |
Implication |
The user application will observe a CPA_DC_OVERFLOW (-11). |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-9078 [CY] Concurrent sym;asym services not supported by Performance Sample Code (cpa_sample_code)
Title |
[CY] Concurrent sym;asym services not supported by Performance Sample Code (cpa_sample_code) |
Reference |
QATE20-9078 |
Description |
If symmetric and asymmetric crypto is enabled in QAT configuration files, the driver will report error when running performance sample code (cpa_sample_code). |
Implication |
It is not possible to currently test symmetric crypto and asymmetric crypto with performance sample code (cpa_sample_code) on one test run. |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QATE20-10480 [DC] - LZ4 compression request may result in a timeout event (-16 CPA_DC_WDOG_TIMER_ERR)
Title |
[DC] - LZ4 compression request may result in a timeout event (-16 CPA_DC_WDOG_TIMER_ERR) |
Reference |
QATE20-10480 |
Description |
When executing LZ4 compression requests, a watchdog timer timeout error (error code -16) may be returned to the application. |
Implication |
No data will be produced by QAT HW and error code -16 will be reported to the application. |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT FW - Data Compression |
QAT20-10606 [Configuration] - Device configurations files are not copied to /etc/ for physical devices on systems with > 2 sockets
Title |
[Configuration] - Device configurations files are not copied to /etc/ for physical devices on systems with > 2 sockets |
Reference |
QAT20-10606 |
Description |
The installation scripts will not create configuration files in /etc/ |
Implication |
Devices on sockets >2 will not be brought up and will be reported as being in the “down” state. The following status will be observed: qat_dev0 - type: 4xxx, inst_id: 0, node_id: 0, bsf: 0000:6b:00.0, #accel: 1 #engines: 9 state: up … qat_dev7 - type: 4xxx, inst_id: 7, node_id: 1, bsf: 0000:f8:00.0, #accel: 1 #engines: 9 state: up qat_dev8 - type: 4xxx, inst_id: 8, node_id: 2, bsf: 0001:6b:00.0, #accel: 1 #engines: 9 state: down qat_dev9 - type: 4xxx, inst_id: 9, node_id: 2, bsf: 0001:70:00.0, #accel: 1 #engines: 9 state: down … qat_dev15 - type: 4xxx, inst_id: 15, node_id: 3, bsf: 0001:f8:00.0, #accel: 1 #engines: 9 state: down |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Configuration |
QAT20-12942 [DC] - Overflow can occur when using output buffer sizes defined by the cpaDcCompressBound API with Dynamic Deflate compression operations under concurrent execution
Title |
[DC] - Overflow can occur when using output buffer sizes defined by the cpaDcCompressBound API with Dynamic Deflate compression operations under concurrent execution |
Reference |
QAT20-12942 |
Description |
The internal calculation for optimal output buffer size for a given input and session configuration when using the cpaDcCompressBound API can yield overflow conditions. This has been observed under concurrent SW thread execution in particular with LZ4s and Dynamic Deflate requests being concurrently processed. |
Implication |
An application using the cpaDcCompressBound API may require overflow handling until the refinement of the algorithm completes. |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |
QAT20-11092 [SRIOV] Default number of VF devices is not available for 4S+ platform
Title |
[SRIOV] Default number of VF devices is not available for 4S+ platform |
Reference |
QAT20-11092 |
Description |
When installing VFs in default configuration on 4S+ platform, some of the VFs are not usable. e.g. Sample application execution fails with error message: [error] SalCtrl_AdfServicesStartedCheck() - : Sal Ctrl failed to start in given time [error] do_userStart() - : Failed to start services |
Implication |
Sample code application is not usable, some of the devices are down. |
Resolution |
This is resolved with the 0.9.0 release. |
Affected OS |
Linux |
Driver/Module |
N/A |
QATE20-9754 [DC] - Deflate Decompression Overflow may result in a timeout event (-16 CPA_DC_WDOG_TIMER_ERR)
Title |
[DC] - Deflate Decompression Overflow may result in a timeout event (-16 CPA_DC_WDOG_TIMER_ERR) |
Reference |
QATE20-9754 |
Description |
When utilizing either stateless/stateful Deflate Decompression sessions, under certain conditions an overflow event may cause watchdog timer timeout error and the driver will report a timeout event (-16 CPA_DC_WDOG_TIMER_ERR). |
Implication |
The user application will observe a CPA_DC_WDOG_TIMER_ER (-16) error rather than CPA_DC_OVERFLOW (-11 ). |
Resolution |
Issue is resolved with updated silicon. |
Affected OS |
Linux |
Driver/Module |
QAT IA - Data Compression |