[PATCH v2 1/5] dmaengine: idxd: assign all engines to group 0 in IAA defaults
Vinicius Costa Gomes <[email protected]> Wed, 05 Aug 2026 14:19:22 -0700
| Newsgroups | org.kernel.vger.linux-crypto,org.kernel.vger.dmaengine,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Giovanni Cabiddu <[email protected]> The IAA device defaults only assigned engine 0 to group 0, leaving engines 1 through max_engines-1 unassigned (group_id = -1). This means that by default only a single engine processed descriptors, limiting throughput to one engine's capacity. Assign all available engines to group 0 so that the full hardware parallelism is used out of the box without requiring manual accel-config setup. Signed-off-by: Giovanni Cabiddu <[email protected]> Signed-off-by: Vinicius Costa Gomes <[email protected]> Reviewed-by: Dave Jiang <[email protected]> --- drivers/dma/idxd/defaults.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/dma/idxd/defaults.c b/drivers/dma/idxd/defaults.c index 2bbbcd02a0da..26ebfa2ca144 100644 --- a/drivers/dma/idxd/defaults.c +++ b/drivers/dma/idxd/defaults.c @@ -8,6 +8,7 @@ int idxd_load_iaa_device_defaults(struct idxd_device *idxd) struct idxd_engine *engine; struct idxd_group *group; struct idxd_wq *wq; + int i; if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) return 0; @@ -41,11 +42,12 @@ int idxd_load_iaa_device_defaults(struct idxd_device *idxd) /* set driver_name to "crypto" */ strscpy_pad(wq->driver_name, "crypto"); - engine = idxd->engines[0]; - - /* set engine group to 0 */ - engine->group = idxd->groups[0]; - engine->group->num_engines++; + /* assign all engines to group 0 */ + for (i = 0; i < idxd->max_engines; i++) { + engine = idxd->engines[i]; + engine->group = group; + group->num_engines++; + } return 0; } -- 2.55.0