d8e7d87ec4
block/throttle.c uses existing I/O throttle infrastructure inside a block filter driver. I/O operations are intercepted in the filter's read/write coroutines, and referred to block/throttle-groups.c The driver can be used with the syntax -drive driver=throttle,file.filename=foo.qcow2,throttle-group=bar which registers the throttle filter node with the ThrottleGroup 'bar'. The given group must be created beforehand with object-add or -object. Reviewed-by: Alberto Garcia <berto@igalia.com> Signed-off-by: Manos Pitsidianakis <el13635@mail.ntua.gr> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
115 lines
4.6 KiB
C
115 lines
4.6 KiB
C
/*
|
|
* QEMU throttling command line options
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or
|
|
* (at your option) any later version.
|
|
*
|
|
* See the COPYING file in the top-level directory for details.
|
|
*
|
|
*/
|
|
#ifndef THROTTLE_OPTIONS_H
|
|
#define THROTTLE_OPTIONS_H
|
|
|
|
#define QEMU_OPT_IOPS_TOTAL "iops-total"
|
|
#define QEMU_OPT_IOPS_TOTAL_MAX "iops-total-max"
|
|
#define QEMU_OPT_IOPS_TOTAL_MAX_LENGTH "iops-total-max-length"
|
|
#define QEMU_OPT_IOPS_READ "iops-read"
|
|
#define QEMU_OPT_IOPS_READ_MAX "iops-read-max"
|
|
#define QEMU_OPT_IOPS_READ_MAX_LENGTH "iops-read-max-length"
|
|
#define QEMU_OPT_IOPS_WRITE "iops-write"
|
|
#define QEMU_OPT_IOPS_WRITE_MAX "iops-write-max"
|
|
#define QEMU_OPT_IOPS_WRITE_MAX_LENGTH "iops-write-max-length"
|
|
#define QEMU_OPT_BPS_TOTAL "bps-total"
|
|
#define QEMU_OPT_BPS_TOTAL_MAX "bps-total-max"
|
|
#define QEMU_OPT_BPS_TOTAL_MAX_LENGTH "bps-total-max-length"
|
|
#define QEMU_OPT_BPS_READ "bps-read"
|
|
#define QEMU_OPT_BPS_READ_MAX "bps-read-max"
|
|
#define QEMU_OPT_BPS_READ_MAX_LENGTH "bps-read-max-length"
|
|
#define QEMU_OPT_BPS_WRITE "bps-write"
|
|
#define QEMU_OPT_BPS_WRITE_MAX "bps-write-max"
|
|
#define QEMU_OPT_BPS_WRITE_MAX_LENGTH "bps-write-max-length"
|
|
#define QEMU_OPT_IOPS_SIZE "iops-size"
|
|
#define QEMU_OPT_THROTTLE_GROUP_NAME "throttle-group"
|
|
|
|
#define THROTTLE_OPT_PREFIX "throttling."
|
|
#define THROTTLE_OPTS \
|
|
{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_TOTAL,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "limit total I/O operations per second",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_READ,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "limit read operations per second",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_WRITE,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "limit write operations per second",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_TOTAL,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "limit total bytes per second",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_READ,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "limit read bytes per second",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_WRITE,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "limit write bytes per second",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_TOTAL_MAX,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "I/O operations burst",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_READ_MAX,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "I/O operations read burst",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_WRITE_MAX,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "I/O operations write burst",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_TOTAL_MAX,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "total bytes burst",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_READ_MAX,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "total bytes read burst",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_WRITE_MAX,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "total bytes write burst",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_TOTAL_MAX_LENGTH,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "length of the iops-total-max burst period, in seconds",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_READ_MAX_LENGTH,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "length of the iops-read-max burst period, in seconds",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_WRITE_MAX_LENGTH,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "length of the iops-write-max burst period, in seconds",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_TOTAL_MAX_LENGTH,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "length of the bps-total-max burst period, in seconds",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_READ_MAX_LENGTH,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "length of the bps-read-max burst period, in seconds",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_BPS_WRITE_MAX_LENGTH,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "length of the bps-write-max burst period, in seconds",\
|
|
},{ \
|
|
.name = THROTTLE_OPT_PREFIX QEMU_OPT_IOPS_SIZE,\
|
|
.type = QEMU_OPT_NUMBER,\
|
|
.help = "when limiting by iops max size of an I/O in bytes",\
|
|
}
|
|
|
|
#endif
|