Go to file
Tom Zanussi 40e039eb44 crypto: iaa - Add support for deflate-iaa compression algorithm
Upstream: commit 2ec6761df889fdf896fde761abd447596dd8f8c2
Conflict: none

This patch registers the deflate-iaa deflate compression algorithm and
hooks it up to the IAA hardware using the 'fixed' compression mode
introduced in the previous patch.

Because the IAA hardware has a 4k history-window limitation, only
buffers <= 4k, or that have been compressed using a <= 4k history
window, are technically compliant with the deflate spec, which allows
for a window of up to 32k.  Because of this limitation, the IAA fixed
mode deflate algorithm is given its own algorithm name, 'deflate-iaa'.

With this change, the deflate-iaa crypto algorithm is registered and
operational, and compression and decompression operations are fully
enabled following the successful binding of the first IAA workqueue
to the iaa_crypto sub-driver.

when there are no IAA workqueues bound to the driver, the IAA crypto
algorithm can be unregistered by removing the module.

A new iaa_crypto 'verify_compress' driver attribute is also added,
allowing the user to toggle compression verification.  If set, each
compress will be internally decompressed and the contents verified,
returning error codes if unsuccessful.  This can be toggled with 0/1:

  echo 0 > /sys/bus/dsa/drivers/crypto/verify_compress

The default setting is '1' - verify all compresses.

The verify_compress value setting at the time the algorithm is
registered is captured in the algorithm's crypto_ctx and used for all
compresses when using the algorithm.

[ Based on work originally by George Powley, Jing Lin and Kyung Min
Park ]

Intel-SIG: commit 2ec6761df889 crypto: iaa - Add support for deflate-iaa compression algorithm.
Backporting patches for Intel IAA crypto driver on Intel Xeon platform.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
[ Xiaochen Shen: amend commit log ]
Signed-off-by: Xiaochen Shen <xiaochen.shen@intel.com>
2024-05-30 17:20:39 +08:00
Documentation crypto: iaa - Add IAA Compression Accelerator Documentation 2024-05-30 17:20:19 +08:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
arch Merge branch 'dev/mengensun/netlat_v2' into 'master' (merge request !100) 2024-05-28 07:45:30 +00:00
block Merge linux 6.6.32 2024-05-26 20:19:43 +08:00
certs certs: Reference revocation list for all keyrings 2023-08-17 20:12:41 +00:00
crypto crypto: iaa - Add support for deflate-iaa compression algorithm 2024-05-30 17:20:39 +08:00
dist dist: using "tk_private=1" to judge private release 2024-05-27 10:56:55 +08:00
drivers crypto: iaa - Add support for deflate-iaa compression algorithm 2024-05-30 17:20:39 +08:00
fs Merge branch 'dev/mengensun/netlat_v2' into 'master' (merge request !100) 2024-05-28 07:45:30 +00:00
include dmaengine: idxd: add wq driver name support for accel-config user tool 2024-05-30 17:19:32 +08:00
init tqos/mbuf: backport mbuf infrastructure from tk3 2024-05-17 14:11:56 +08:00
io_uring io_uring: Fix io_cqring_wait() not restoring sigmask on get_timespec64() failure 2024-04-27 17:11:30 +02:00
ipc Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
kernel Merge branch 'dev/mengensun/netlat_v2' into 'master' (merge request !100) 2024-05-28 07:45:30 +00:00
lib Merge linux 6.6.31 2024-05-20 14:44:58 +08:00
mm Merge ock repo's next branch to tk5 repo's master branch 2024-05-21 10:43:15 +08:00
net Merge branch 'dev/mengensun/netlat_v2' into 'master' (merge request !100) 2024-05-28 07:45:30 +00:00
rust rust: kernel: require `Send` for `Module` implementations 2024-05-17 12:01:56 +02:00
samples work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:24:47 +01:00
scripts Merge linux 6.6.31 2024-05-20 14:44:58 +08:00
security Merge linux 6.6.32 2024-05-26 20:19:43 +08:00
sound Merge linux 6.6.31 2024-05-20 14:44:58 +08:00
tools Merge linux 6.6.32 2024-05-26 20:19:43 +08:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt KVM: Always flush async #PF workqueue when vCPU is being destroyed 2024-04-03 15:28:18 +02:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes dist: initial support 2023-12-12 15:56:34 +08:00
.gitignore dist: initial support 2023-12-12 15:56:34 +08:00
.gitmodules emm: add submodule of emm 2024-04-30 17:18:01 +08:00
.mailmap 20 hotfixes. 12 are cc:stable and the remainder address post-6.5 issues 2023-10-24 09:52:16 -10:00
.rustfmt.toml rust: add `.rustfmt.toml` 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS USB: Remove Wireless USB and UWB documentation 2023-08-09 14:17:32 +02:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig tkernel: netatop: add netatop module in kernel/tkernel/ 2023-12-12 15:56:47 +08:00
MAINTAINERS crypto: iaa - Add Intel IAA Compression Accelerator crypto driver core 2024-05-30 17:20:24 +08:00
Makefile Merge linux 6.6.32 2024-05-26 20:19:43 +08:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00
config-readme Makefile, dist: add "make tencentconfig" support 2024-03-04 13:25:26 +08:00

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.