qemu-e2k/util
Manos Pitsidianakis 432d889e55 block: convert ThrottleGroup to object with QOM
ThrottleGroup is converted to an object. This will allow the future
throttle block filter drive easy creation and configuration of throttle
groups in QMP and cli.

A new QAPI struct, ThrottleLimits, is introduced to provide a shared
struct for all throttle configuration needs in QMP.

ThrottleGroups can be created via CLI as
    -object throttle-group,id=foo,x-iops-total=100,x-..
where x-* are individual limit properties. Since we can't add non-scalar
properties in -object this interface must be used instead. However,
setting these properties must be disabled after initialization because
certain combinations of limits are forbidden and thus configuration
changes should be done in one transaction. The individual properties
will go away when support for non-scalar values in CLI is implemented
and thus are marked as experimental.

ThrottleGroup also has a `limits` property that uses the ThrottleLimits
struct.  It can be used to create ThrottleGroups or set the
configuration in existing groups as follows:

{ "execute": "object-add",
  "arguments": {
    "qom-type": "throttle-group",
    "id": "foo",
    "props" : {
      "limits": {
          "iops-total": 100
      }
    }
  }
}
{ "execute" : "qom-set",
    "arguments" : {
        "path" : "foo",
        "property" : "limits",
        "value" : {
            "iops-total" : 99
        }
    }
}

This also means a group's configuration can be fetched with qom-get.

Signed-off-by: Manos Pitsidianakis <el13635@mail.ntua.gr>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2017-09-05 18:12:21 +02:00
..
acl.c
aio-posix.c
aio-win32.c util/aio-win32: Only select on what we are actually waiting for 2017-07-17 15:58:37 +01:00
aiocb.c
async.c async: Introduce aio_co_enter 2017-04-11 20:07:15 +08:00
base64.c
bitmap.c bitmap: add bitmap_copy_and_clear_atomic 2017-04-24 10:12:28 +02:00
bitops.c
buffer.c
bufferiszero.c util: Introduce include/qemu/cpuid.h 2017-07-24 12:42:55 +01:00
cacheinfo.c util/cacheinfo: Add missing include for ppc linux 2017-07-19 14:45:15 -07:00
compatfd.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
crc32c.c
cutils.c utils: provide size_to_str() 2017-05-17 17:30:45 +01:00
envlist.c util: Use g_malloc/g_free in envlist.c 2017-05-07 09:57:51 +03:00
error.c error: Implement the warn and free Error functions 2017-07-13 13:50:19 +02:00
event_notifier-posix.c Remove/replace sysemu/char.h inclusion 2017-06-02 11:33:52 +04:00
event_notifier-win32.c event_notifier: prevent accidental use after close 2017-03-29 02:35:23 +03:00
fifo8.c
getauxval.c
hbitmap.c qmp: add x-debug-block-dirty-bitmap-sha256 2017-07-11 17:44:59 +02:00
hexdump.c
host-utils.c
id.c
iohandler.c
iov.c
keyval.c qapi: Generate FOO_str() macro for QAPI enum FOO 2017-09-04 13:09:13 +02:00
lockcnt.c
log.c
main-loop.c main_loop: Make main_loop_wait() return void 2017-07-04 14:39:28 +02:00
Makefile.objs Queued TCG patches 2017-06-22 10:25:03 +01:00
memfd.c
mmap-alloc.c
module.c
notify.c
osdep.c osdep: Add runtime OFD lock detection 2017-08-11 14:12:44 +02:00
oslib-posix.c oslib-posix: Print errors before aborting on qemu_alloc_stack() 2017-08-30 09:33:49 +01:00
oslib-win32.c block: rip out all traces of password prompting 2017-07-11 17:44:56 +02:00
path.c
qdist.c
qemu-config.c util/qemu-config: Add loadparm to qemu machine_opts 2017-05-02 15:08:54 +02:00
qemu-coroutine-io.c
qemu-coroutine-lock.c coroutine-lock: add qemu_co_rwlock_downgrade and qemu_co_rwlock_upgrade 2017-07-17 11:28:15 +08:00
qemu-coroutine-sleep.c
qemu-coroutine.c coroutine-lock: do not touch coroutine after another one has been entered 2017-06-07 14:39:00 +01:00
qemu-error.c error: Revert unwanted change of warning messages 2017-07-24 14:16:29 +02:00
qemu-openpty.c
qemu-option.c qapi: merge QInt and QFloat in QNum 2017-06-20 14:31:31 +02:00
qemu-progress.c progress: Show current progress on SIGINFO 2017-04-28 18:48:11 +02:00
qemu-sockets.c sockets: ensure we don't accept IPv4 clients when IPv4 is disabled 2017-07-14 14:28:29 +01:00
qemu-thread-posix.c qemu-thread: Assert locks are initialized before using 2017-07-04 14:39:28 +02:00
qemu-thread-win32.c qemu-thread: Assert locks are initialized before using 2017-07-04 14:39:28 +02:00
qemu-timer-common.c
qemu-timer.c
qht.c
range.c
rcu.c Revert "rcu: do not create thread in pthread_atfork callback" 2017-08-08 10:40:19 +02:00
readline.c
stats64.c util: add stats64 module 2017-06-16 07:55:00 +08:00
systemd.c qemu-ga: obey LISTEN_PID when using systemd socket activation 2017-03-19 11:12:12 +01:00
thread-pool.c
throttle.c block: convert ThrottleGroup to object with QOM 2017-09-05 18:12:21 +02:00
timed-average.c
trace-events docs: fix broken paths to docs/devel/tracing.txt 2017-07-31 13:12:53 +03:00
unicode.c
uri.c
uuid.c