qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 00/17] crypto/cipher: Class hierarchy cleanups


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 00/17] crypto/cipher: Class hierarchy cleanups
Date: Thu, 13 Aug 2020 10:54:35 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0

On 8/13/20 5:25 AM, Richard Henderson wrote:
> Mostly this is intended to cleanup the class hierarchy
> used for the ciphers.  We currently have multiple levels
> of dispatch, and multiple separate allocations.  The final
> patches rearrange this to one level of indirect call, and
> all memory allocated contiguously.
> 
> But on the way there are a number of other misc cleanups.
> 
> I know those final patches are somewhat big, but I don't
> immediately see how to split them apart.
> 
> I noticed this while profiling patches to make ARM PAUTH
> use the crypto subsystem.  The qcrypto_cipher_* dispatch
> routines were consuming a noticeable portion of the runtime,
> and with these changes they were down below 1% where they
> ought to be.
> 
> While I did not continue with PAUTH using AES, I still think
> these are good cleanups.
> 
> 
> r~
> 
> 
> Richard Henderson (17):
>   crypto: Move QCryptoCipher typedef to qemu/typedefs.h
>   crypto: Move QCryptoCipherDriver typedef to qemu/typedefs.h
>   crypto: Assume blocksize is a power of 2
>   crypto: Rename cipher include files to .inc.c
>   crypto: Remove redundant includes
>   crypto/nettle: Fix xts_encrypt arguments
>   crypto: Use the correct const type for driver
>   crypto: Allocate QCryptoCipher with the subclass
>   crypto: Move cipher->driver init to qcrypto_*_cipher_ctx_new
>   crypto: Constify cipher data tables
>   crypto/builtin: Remove odd-sized AES block handling
>   crypto/builtin: Merge qcrypto_cipher_aes_{ecb,xts}_{en,de}crypt
>   crypto/builtin: Move AES_cbc_encrypt into cipher-builtin.inc.c
>   crypto/builtin: Split and simplify AES_encrypt_cbc
>   crypto/builtin: Split QCryptoCipherBuiltin into subclasses
>   crypto/nettle: Split QCryptoCipherNettle into subclasses
>   crypto/gcrypt: Split QCryptoCipherGcrypt into subclasses
> 
>  crypto/afalgpriv.h                            |   3 +
>  crypto/cipherpriv.h                           |   6 +-
>  include/crypto/aes.h                          |   4 -
>  include/crypto/cipher.h                       |   5 +-
>  include/qemu/typedefs.h                       |   2 +
>  crypto/aes.c                                  |  51 --
>  crypto/cipher-afalg.c                         |  25 +-
>  crypto/cipher-builtin.c                       | 532 ------------
>  crypto/cipher-builtin.inc.c                   | 425 ++++++++++
>  .../{cipher-gcrypt.c => cipher-gcrypt.inc.c}  | 522 ++++++------
>  crypto/cipher-nettle.c                        | 733 -----------------
>  crypto/cipher-nettle.inc.c                    | 756 ++++++++++++++++++
>  crypto/cipher.c                               |  44 +-
>  13 files changed, 1477 insertions(+), 1631 deletions(-)
>  delete mode 100644 crypto/cipher-builtin.c
>  create mode 100644 crypto/cipher-builtin.inc.c
>  rename crypto/{cipher-gcrypt.c => cipher-gcrypt.inc.c} (51%)
>  delete mode 100644 crypto/cipher-nettle.c
>  create mode 100644 crypto/cipher-nettle.inc.c
> 

Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]