From abaa11006f26a05899b2d2d9ef8f3cf08878f6d2 Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Mon, 20 Jun 2016 17:10:32 +0200 Subject: [PATCH] qemu: Add support for cpu throttling parameters Signed-off-by: Jiri Denemark --- src/qemu/qemu_monitor.c | 11 ++++++++--- src/qemu/qemu_monitor.h | 6 ++++++ src/qemu/qemu_monitor_json.c | 4 ++++ tests/qemumonitorjsontest.c | 6 +++++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 2862cbc12f..098e65436a 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -2173,16 +2173,21 @@ qemuMonitorSetMigrationParams(qemuMonitorPtr mon, qemuMonitorMigrationParamsPtr params) { VIR_DEBUG("compressLevel=%d:%d compressThreads=%d:%d " - "decompressThreads=%d:%d", + "decompressThreads=%d:%d cpuThrottleInitial=%d:%d " + "cpuThrottleIncrement=%d:%d", params->compressLevel_set, params->compressLevel, params->compressThreads_set, params->compressThreads, - params->decompressThreads_set, params->decompressThreads); + params->decompressThreads_set, params->decompressThreads, + params->cpuThrottleInitial_set, params->cpuThrottleInitial, + params->cpuThrottleIncrement_set, params->cpuThrottleIncrement); QEMU_CHECK_MONITOR_JSON(mon); if (!params->compressLevel_set && !params->compressThreads_set && - !params->decompressThreads_set) + !params->decompressThreads_set && + !params->cpuThrottleInitial_set && + !params->cpuThrottleIncrement_set) return 0; return qemuMonitorJSONSetMigrationParams(mon, params); diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 28cffc9410..6fecca79a7 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -496,6 +496,12 @@ struct _qemuMonitorMigrationParams { bool decompressThreads_set; int decompressThreads; + + bool cpuThrottleInitial_set; + int cpuThrottleInitial; + + bool cpuThrottleIncrement_set; + int cpuThrottleIncrement; }; int qemuMonitorGetMigrationParams(qemuMonitorPtr mon, diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 0434522ba6..66b9c4cd84 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -2560,6 +2560,8 @@ qemuMonitorJSONGetMigrationParams(qemuMonitorPtr mon, PARSE(compressLevel, "compress-level"); PARSE(compressThreads, "compress-threads"); PARSE(decompressThreads, "decompress-threads"); + PARSE(cpuThrottleInitial, "cpu-throttle-initial"); + PARSE(cpuThrottleIncrement, "cpu-throttle-increment"); #undef PARSE @@ -2600,6 +2602,8 @@ qemuMonitorJSONSetMigrationParams(qemuMonitorPtr mon, APPEND(compressLevel, "compress-level"); APPEND(compressThreads, "compress-threads"); APPEND(decompressThreads, "decompress-threads"); + APPEND(cpuThrottleInitial, "cpu-throttle-initial"); + APPEND(cpuThrottleIncrement, "cpu-throttle-increment"); #undef APPEND diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c index a0079dd1da..f698c144a6 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c @@ -1630,8 +1630,10 @@ testQemuMonitorJSONqemuMonitorJSONGetMigrationParams(const void *data) "{" " \"return\": {" " \"decompress-threads\": 2," + " \"cpu-throttle-increment\": 10," " \"compress-threads\": 8," - " \"compress-level\": 1" + " \"compress-level\": 1," + " \"cpu-throttle-initial\": 20" " }" "}") < 0) { goto cleanup; @@ -1658,6 +1660,8 @@ testQemuMonitorJSONqemuMonitorJSONGetMigrationParams(const void *data) CHECK(compressLevel, "compress-level", 1); CHECK(compressThreads, "compress-threads", 8); CHECK(decompressThreads, "decompress-threads", 2); + CHECK(cpuThrottleInitial, "cpu-throttle-initial", 20); + CHECK(cpuThrottleIncrement, "cpu-throttle-increment", 10); #undef CHECK