Fiona Trahe 026f21c0b9 common/qat: support dual threads for enqueue/dequeue
Remove the limitation whereby enqueue and dequeue must be
done in same thread.
The inflight calculation is reworked to be thread-safe for 2
threads - note this is not general multi-thread support, i.e
all enqueues to a qp must still be done in one thread and
all dequeues must be done in one thread, but enqueues and
dequeues may be in separate threads.
Documentation updated.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
2020-01-15 15:20:58 +01:00

57 lines
1.6 KiB
ReStructuredText

.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2018 Intel Corporation.
Intel(R) QuickAssist (QAT) Compression Poll Mode Driver
=======================================================
The QAT compression PMD provides poll mode compression & decompression driver
support for the following hardware accelerator devices:
* ``Intel QuickAssist Technology C62x``
* ``Intel QuickAssist Technology C3xxx``
* ``Intel QuickAssist Technology DH895x``
Features
--------
QAT compression PMD has support for:
Compression/Decompression algorithm:
* DEFLATE - using Fixed and Dynamic Huffman encoding
Window size support:
* 32K
Checksum generation:
* CRC32, Adler and combined checksum
Stateful operation:
* Decompression only
Limitations
-----------
* Compressdev level 0, no compression, is not supported.
* Queue-pairs are thread-safe on Intel CPUs but Queues are not (that is, within a single
queue-pair all enqueues to the TX queue must be done from one thread and all dequeues
from the RX queue must be done from one thread, but enqueues and dequeues may be done
in different threads.)
* No BSD support as BSD QAT kernel driver not available.
* When using Deflate dynamic huffman encoding for compression, the input size (op.src.length)
must be < CONFIG_RTE_PMD_QAT_COMP_IM_BUFFER_SIZE from the config file,
see :ref:`building_qat_config` for more details.
* Stateful compression is not supported.
Installation
------------
The QAT compression PMD is built by default with a standard DPDK build.
It depends on a QAT kernel driver, see :ref:`building_qat`.