mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
cryptodev: support QoS
Add 'throttle-bps' and 'throttle-ops' limitation to set QoS. The two arguments work with both QEMU command line and QMP command. Example of QEMU command line: -object cryptodev-backend-builtin,id=cryptodev1,throttle-bps=1600,\ throttle-ops=100 Example of QMP command: virsh qemu-monitor-command buster --hmp qom-set /objects/cryptodev1 \ throttle-ops 100 or cancel limitation: virsh qemu-monitor-command buster --hmp qom-set /objects/cryptodev1 \ throttle-ops 0 Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20230301105847.253084-11-pizhenwei@bytedance.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
e7a775fd9f
commit
2580b452ff
3 changed files with 152 additions and 1 deletions
|
@ -24,6 +24,7 @@
|
|||
#define CRYPTODEV_H
|
||||
|
||||
#include "qemu/queue.h"
|
||||
#include "qemu/throttle.h"
|
||||
#include "qom/object.h"
|
||||
#include "qapi/qapi-types-cryptodev.h"
|
||||
|
||||
|
@ -187,6 +188,7 @@ typedef struct CryptoDevBackendOpInfo {
|
|||
CryptoDevBackendSymOpInfo *sym_op_info;
|
||||
CryptoDevBackendAsymOpInfo *asym_op_info;
|
||||
} u;
|
||||
QTAILQ_ENTRY(CryptoDevBackendOpInfo) next;
|
||||
} CryptoDevBackendOpInfo;
|
||||
|
||||
struct CryptoDevBackendClass {
|
||||
|
@ -273,6 +275,11 @@ struct CryptoDevBackend {
|
|||
CryptoDevBackendConf conf;
|
||||
CryptodevBackendSymStat *sym_stat;
|
||||
CryptodevBackendAsymStat *asym_stat;
|
||||
|
||||
ThrottleState ts;
|
||||
ThrottleTimers tt;
|
||||
ThrottleConfig tc;
|
||||
QTAILQ_HEAD(, CryptoDevBackendOpInfo) opinfos;
|
||||
};
|
||||
|
||||
#define CryptodevSymStatInc(be, op, bytes) do { \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue