v6 -> v7:
- Suggested by Daniel, Drop 'QCryptodevBackendSymStat' and 'QCryptodevBackendAsymStat'
from QAPI, declare a normal C struct directly instead.
- Other minor changes. (QCryptodevBackendSymStat -> CryptodevBackendSymStat)
v5 -> v6:
- Rebase code against the latest version: 627634031092e1514f363fd8659a579398de0f0e
- Markus has already separated HMP commands from monitor/* into subsystems, so
rework patch '0007-hmp-add-cryptodev-info-command.patch', move cryptodev HMP
command implements into backends/cryptodev-hmp-cmds.c.
- Suggested by Daniel, use constant strings for query-stats. Changes in
'0011-cryptodev-Support-query-stats-QMP-command.patch'.
v4 -> v5:
- suggested by MST, use 'PRIu32' instead of '%u' to print a uint32_t value
- correct *QCryptodevBackendClient* and *QCryptodevInfo* in qapi/cryptodev.json
v3 -> v4:
- a small change in '0005-cryptodev-Introduce-query-cryptodev-QMP-command.patch':
use 'uint32' instead of 'int' to describe CryptodevBackendClient:queue
- fix compling warning(gcc)/error(clang-11) on 32 bit platform in
'0007-hmp-add-cryptodev-info-command.patch':
use 'printf("%u", client->queue)' instead of 'printf("%ld", client->queue)'
v2 -> v3:
- rebase code against the lastest commist: fb7e7990342e59cf67d
- document the missing fields in qapi/cryptodev.json
- rework statistics part: use 'query-stats' command instead of
'query-cryptodev'(cryptodev: Support query-stats QMP command)
v1 -> v2:
- fix coding style and use 'g_strjoin()' instead of 'char services[128]'
(suggested by Dr. David Alan Gilbert)
- wrapper function 'cryptodev_backend_account' to record statistics, and
allocate sym_stat/asym_stat in cryptodev base class. see patch:
'cryptodev: Support statistics'.
- add more arguments into struct CryptoDevBackendOpInfo, then
cryptodev_backend_crypto_operation() uses *op_info only.
- support cryptodev QoS settings(BPS&OPS), both QEMU command line and QMP
command works fine.
- add myself as the maintainer for cryptodev.
v1:
- introduce cryptodev.json to describe the attributes of crypto device, then
drop duplicated type declare, remove some virtio related dependence.
- add statistics: OPS and bandwidth.
- add QMP command: query-cryptodev
- add HMP info command: cryptodev
- misc fix: detect akcipher capability instead of exposing akcipher service
unconditionally.
Zhenwei Pi (12):
cryptodev: Introduce cryptodev.json
cryptodev: Remove 'name' & 'model' fields
cryptodev: Introduce cryptodev alg type in QAPI
cryptodev: Introduce server type in QAPI
cryptodev: Introduce 'query-cryptodev' QMP command
cryptodev-builtin: Detect akcipher capability
hmp: add cryptodev info command
cryptodev: Use CryptoDevBackendOpInfo for operation
cryptodev: Account statistics
cryptodev: support QoS
cryptodev: Support query-stats QMP command
MAINTAINERS: add myself as the maintainer for cryptodev
MAINTAINERS | 2 +
backends/cryptodev-builtin.c | 42 ++--
backends/cryptodev-hmp-cmds.c | 54 ++++
backends/cryptodev-lkcf.c | 19 +-
backends/cryptodev-vhost-user.c | 13 +-
backends/cryptodev-vhost.c | 4 +-
backends/cryptodev.c | 433 ++++++++++++++++++++++++++++++--
backends/meson.build | 1 +
hmp-commands-info.hx | 14 ++
hw/virtio/virtio-crypto.c | 48 +++-
include/monitor/hmp.h | 1 +
include/sysemu/cryptodev.h | 113 ++++++---
qapi/cryptodev.json | 89 +++++++
qapi/meson.build | 1 +
qapi/qapi-schema.json | 1 +
qapi/qom.json | 8 +-
qapi/stats.json | 10 +-
stats/stats-hmp-cmds.c | 5 +
stats/stats-qmp-cmds.c | 2 +
19 files changed, 740 insertions(+), 120 deletions(-)
create mode 100644 backends/cryptodev-hmp-cmds.c
create mode 100644 qapi/cryptodev.json
--
2.34.1