Re: [RFC] crypto: Remove mcryptd

From: Herbert Xu
Date: Wed Aug 08 2018 - 05:56:31 EST


On Thu, Jul 26, 2018 at 05:25:07PM -0700, Megha Dey wrote:
>
> 1. On the existing algorithms covered in aesni_intel-glue.c (eg:
> __cbc-aes-aesni), 3 algorithms are registered in /proc/crypto:
>
> __cbc(aes)
> cryptd(__cbc-aes-aesni)--> registered via cryptd_create_skcipher
>
> cbc(aes)
> cbc-aes-aesni --> registered via simd_skcipher_create_compat
>
> __cbc(aes)
> __cbc-aes-aesni --> registered as the internal algorithm
>
> I would want to know why do we need the cryptd(__cbc-aes-aesni)
> algorithm at all. I do not see any of the associated setkey, encrypt or
> decrypt functions getting called during the selftest or while running
> tcrypt. I just see the simd_(setkey, encrypt, decrypt) functions
> directly called the inner algorithms. However, if I remove the cryptd
> algorithm, none of the algorithms are registered.

The simd functions are the fast path where you are running in a
context where SIMD can be used directly. cryptd is the slow path
where we defer the work to a work queue.

> > What you need to do is create an actual simd wrapper with cryptd
>
> This simd wrapper is already present for skcipher right(in simd.c)?
> Assuming we only have ciphers and no hash algorithms, are any changes
> required in these wrappers?

For skcipher yes they already exist. But this thread was about
hashes.

Cheers,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt