[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 for-2.10 00/18] crypto: add afalg-backend sup
From: |
Longpeng (Mike) |
Subject: |
Re: [Qemu-devel] [PATCH v2 for-2.10 00/18] crypto: add afalg-backend support |
Date: |
Fri, 21 Apr 2017 08:56:09 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 |
Hi Daniel,
2.9 was released, so...ping
Thanks.
On 2017/4/17 9:33, Longpeng(Mike) wrote:
> The AF_ALG socket family is the userspace interface for linux
> crypto API, users can use it to access hardware accelerators.
>
> This patchset adds a afalg-backend for qemu crypto subsystem. Currently
> when performs encrypt/decrypt, we'll try afalg-backend first and will
> back to libiary-backend if it failed.
>
> In the next step, It would support a command parameter to specifies
> which backends prefer to and some other improvements.
>
> I measured the performance about the afalg-backend impls, I tested
> how many data could be encrypted in 5 seconds.
>
> NOTE: If we use specific hardware crypto cards, I think afalg-backend
> would even faster.
>
> test-environment: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
>
> *sha256*
> chunk_size(bytes) MB/sec(afalg:sha256-ssse3) MB/sec(nettle)
> 512 93.03 185.87
> 1024 146.32 201.78
> 2048 213.32 210.93
> 4096 275.48 215.26
> 8192 321.77 217.49
> 16384 349.60 219.26
> 32768 363.59 219.73
> 65536 375.79 219.99
>
> *hmac(sha256)*
> chunk_size(bytes) MB/sec(afalg:sha256-ssse3) MB/sec(nettle)
> 512 71.26 165.55
> 1024 117.43 189.15
> 2048 180.96 203.24
> 4096 247.60 211.38
> 8192 301.99 215.65
> 16384 340.79 218.22
> 32768 365.51 219.49
> 65536 377.92 220.24
>
> *cbc(aes128)*
> chunk_size(bytes) MB/sec(afalg:cbc-aes-aesni) MB/sec(nettle)
> 512 371.76 188.41
> 1024 559.86 189.64
> 2048 768.66 192.11
> 4096 939.15 192.40
> 8192 1029.48 192.49
> 16384 1072.79 190.52
> 32768 1109.38 190.41
> 65536 1102.38 190.40
>
> ---
> Changes since v1:
> - use "make check-speed" to testing the performance. [Daniel]
> - put private definations into crypto/***priv.h. [Daniel]
> - remove afalg socket from qapi-schema, put them into crypto/. [Daniel]
> - some Error report change. [Daniel]
> - s/QCryptoAfalg/QCryptoAFAlg. [Daniel]
> - use snprintf with bounds checking instead of sprintf. [Daniel]
> - use "qcrypto_afalg_" prefix and
> "qcrypto_nettle(gcrypt,glib,builtin)_" prefix. [Daniel]
> - add testing results in cover-letter. [Gonglei]
>
> ---
> Longpeng(Mike) (18):
> crypto: cipher: introduce context free function
> crypto: cipher: introduce qcrypto_cipher_ctx_new for gcrypt-backend
> crypto: cipher: introduce qcrypto_cipher_ctx_new for nettle-backend
> crypto: cipher: introduce qcrypto_cipher_ctx_new for builtin-backend
> crypto: cipher: add cipher driver framework
> crypto: hash: add hash driver framework
> crypto: hmac: move crypto/hmac.h into include/crypto/
> crypto: hmac: introduce qcrypto_hmac_ctx_new for gcrypt-backend
> crypto: hmac: introduce qcrypto_hmac_ctx_new for nettle-backend
> crypto: hmac: introduce qcrypto_hmac_ctx_new for glib-backend
> crypto: hmac: add hmac driver framework
> crypto: introduce some common functions for af_alg backend
> crypto: cipher: add afalg-backend cipher support
> crypto: hash: add afalg-backend hash support
> crypto: hmac: add af_alg hmac support
> tests: crypto: add cipher speed benchmark support
> tests: crypto: add hash speed benchmark support
> tests: crypto: add hmac speed benchmark support
>
> configure | 21 ++++
> crypto/Makefile.objs | 3 +
> crypto/afalg.c | 115 ++++++++++++++++++++
> crypto/afalgpriv.h | 64 +++++++++++
> crypto/cipher-afalg.c | 225 +++++++++++++++++++++++++++++++++++++++
> crypto/cipher-builtin.c | 125 +++++++++++-----------
> crypto/cipher-gcrypt.c | 105 +++++++++---------
> crypto/cipher-nettle.c | 84 +++++++++------
> crypto/cipher.c | 91 ++++++++++++++++
> crypto/cipherpriv.h | 51 +++++++++
> crypto/hash-afalg.c | 229
> ++++++++++++++++++++++++++++++++++++++++
> crypto/hash-gcrypt.c | 19 ++--
> crypto/hash-glib.c | 19 ++--
> crypto/hash-nettle.c | 19 ++--
> crypto/hash.c | 24 +++++
> crypto/hashpriv.h | 35 ++++++
> crypto/hmac-gcrypt.c | 42 ++++----
> crypto/hmac-glib.c | 63 ++++++-----
> crypto/hmac-nettle.c | 42 ++++----
> crypto/hmac.c | 69 ++++++++++++
> crypto/hmac.h | 166 -----------------------------
> crypto/hmacpriv.h | 45 ++++++++
> include/crypto/cipher.h | 9 ++
> include/crypto/hmac.h | 175 ++++++++++++++++++++++++++++++
> tests/Makefile.include | 13 ++-
> tests/benchmark-crypto-cipher.c | 90 ++++++++++++++++
> tests/benchmark-crypto-hash.c | 67 ++++++++++++
> tests/benchmark-crypto-hmac.c | 96 +++++++++++++++++
> tests/test-crypto-cipher.c | 10 +-
> 29 files changed, 1704 insertions(+), 412 deletions(-)
> create mode 100644 crypto/afalg.c
> create mode 100644 crypto/afalgpriv.h
> create mode 100644 crypto/cipher-afalg.c
> create mode 100644 crypto/cipherpriv.h
> create mode 100644 crypto/hash-afalg.c
> create mode 100644 crypto/hashpriv.h
> delete mode 100644 crypto/hmac.h
> create mode 100644 crypto/hmacpriv.h
> create mode 100644 include/crypto/hmac.h
> create mode 100644 tests/benchmark-crypto-cipher.c
> create mode 100644 tests/benchmark-crypto-hash.c
> create mode 100644 tests/benchmark-crypto-hmac.c
>
--
Regards,
Longpeng(Mike)
- [Qemu-devel] [PATCH v2 for-2.10 14/18] crypto: hash: add afalg-backend hash support, (continued)
Re: [Qemu-devel] [PATCH v2 for-2.10 00/18] crypto: add afalg-backend support, no-reply, 2017/04/16
Re: [Qemu-devel] [PATCH v2 for-2.10 00/18] crypto: add afalg-backend support,
Longpeng (Mike) <=