Re: [PATCH 1/4] dmaengine: idxd: assign all engines to group 0 in IAA defaults
From: Dave Jiang
Date: Tue Jul 14 2026 - 17:55:58 EST
On 7/14/26 2:53 PM, Dave Jiang wrote:
>
>
> 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>
>
Just noticed it's missing Vinicius sign off.
> 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;
>> }
>>
>
>