Re: [PATCH 1/4] dmaengine: idxd: assign all engines to group 0 in IAA defaults
From: Dave Jiang
Date: Tue Jul 14 2026 - 17:53:15 EST
On 7/13/26 9:10 PM, Vinicius Costa Gomes wrote:
> From: Giovanni Cabiddu <giovanni.cabiddu@xxxxxxxxx>
>
> 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 <giovanni.cabiddu@xxxxxxxxx>
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
> ---
> 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;
> }
>