Re: [RFC PATCH] Crypto-engine support for parallel requests

From: Iuliana Prodan
Date: Tue Jan 21 2020 - 05:08:59 EST


On 1/21/2020 11:11 AM, Herbert Xu wrote:
> On Tue, Jan 21, 2020 at 01:32:29AM +0200, Iuliana Prodan wrote:
>>
>> + if (engine->no_reqs < engine->max_no_reqs)
>> + goto retry;
>
> We should not hard-code this number into the engine. Instead,
> we should just let the driver tell us when it is ready to accept
> more requests.
>
This is not hardcoded in crypto-engine.
I've added the crypto_engine_alloc_init_and_set function to configure
how crypto-engine works.
The max_no_req means how many request the driver can process in parallel.
If this doesn't apply on some drivers they can call
crypto_engine_alloc_init, which has max_no_req = 1 - this is the current
behavior. That is serialization of requests by crypto-engine which is a
bottleneck.

> Perhaps we should add a new function for drivers that wish to
> support this that would accept a list of requests instead of
> a single one. It would then process as many requests as it
> can from that list and only return either when the list is
> exhausted or when it can't process any more requests.
>

Linking requests is something different that is not addressed by my
proposal.
I want to remove this serialization, done by crypto-engine, of unrelated
requests.