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

QAT20-23616 [Firmware] Shared Virtual Memory (SVM) and Address Translation (AT) disabled

Title

[Firmware] Shared Virtual Memory (SVM) and Address Translation (AT) disabled

Reference

QAT20-23616

Description

When running QAT workloads with AT enabled under loaded traffic conditions, memory page corruption may occur.

Intel is looking at a possible workaround for the problem, and until then the QAT firmware/Driver will not make use of or enable SVM with AT.

Implication

It is not currently possible to run with SVM and AT.

Resolution

SVM and AT are available starting with the 1.0.10 release. Refer to the SVM Kernel Requirements section of the Programmer’s Guide for details on enabling.

Affected OS

All

Driver/Module

QAT Firmware