[PATCH 0/4] crypto: iaa - rework the WQ selection tables
From: Vinicius Costa Gomes
Date: Mon Oct 19 2026 - 19:07:50 EST
iaa_crypto maps each CPU to a single IAA device through a flat CPU
index, which ignores packages (where the actual IAA devices live) and
leaves other IAA devices in the package idle.
Patches 1-2 make the request carry the IAA workqueue
representation ('iaa_wq') it holds a reference on, instead of looking
it up again. Patch 3 replaces the per-CPU WQ table with per-package
tables published with RCU, and patch 4 keeps each CPU on one WQ for
decompression.
Patches 1-3 are meant more of a simplification, to make the code
easier to reason about. Patch 4 is "low hanging" optimization (because
decompressions are very fast, they benefit when the same CPU uses the
same engine). Future work will introduce more complex optimizations.
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx>
---
Vinicius Costa Gomes (4):
crypto: iaa - carry the iaa_wq in the request
crypto: iaa - take the WQ from the request in the submit helpers
crypto: iaa - use RCU per-package WQ tables
crypto: iaa - keep each CPU on one WQ for decompression
drivers/crypto/intel/iaa/iaa_crypto.h | 7 -
drivers/crypto/intel/iaa/iaa_crypto_main.c | 393 ++++++++++++-----------------
2 files changed, 157 insertions(+), 243 deletions(-)
---
base-commit: 178aff4cf425b3fc51ff09c571fa1bfbc1eb8ea4
base-tree: git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
change-id: 20261008-iaa-crypto-wq-tables-4e5911143017
Best regards,
--
Vinicius