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