Article ID: 000094259 Content Type: Troubleshooting Last Reviewed: 09/19/2023

How to recover from a data compression overflow state using the Intel® QuickAssist Technology (Intel® QAT) driver

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Summary

Recommended process to follow after an overflow detection while using Intel® QAT in data compression operations.

Description

Sometimes decompressing QAT may fail, the return value of QAT cpaDcCompressData will be 11, which corresponds to a CPA_DC_OVERFLOW error type.

Resolution

An overflow state is not really an error but an exception that can be handled. It usually requires a resubmission with a larger output buffer. The usual process to follow after an overflow detection is:

  1. Resubmit the request using the same Source buffer.
  2. Allocate a bigger Destination buffer.
  3. Put the checksum from the previous successful request into the cpaDcRqResults struct.
Additional information

The compression overflow exception happens for two reasons:

  1. The application allocated a destination buffer that was too small to receive the compressed data, or
  2. A recovery occurred after a compress and verified error with an input payload greater than 65,535 bytes.

To minimize the impact of resubmitting data after an overflow exception, the API cpaDcDeflateCompressBound() can be used. This API will provide to the application a recommended destination buffer size to avoid the exception. This API must be called by the application before allocating the destination buffer.

Refer to the Intel® QAT Programmer's Guide of your respective Intel® QAT Hardware Version for more details about handling data compression overflow exceptions.

Related Products

This article applies to 1 products