提交 cdc1b1d7 编写于 作者: J Jiri Denemark

Public API for post-copy migration bandwidth

This patch adds a new VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY typed
parameter for virDomainMigrate3 and virDomainMigrateToURI3 for setting
maximum post-copy migration bandwidth.

In case the initial VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY value turns out
to be suboptimal a new VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY flag for
virDomainMigrateSetMaxSpeed and virDomainMigrateGetMaxSpeed may be used
to set/get the maximum post-copy migration bandwidth while migration is
already running.
Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 08d44263
......@@ -903,6 +903,15 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_BANDWIDTH "bandwidth"
/**
* VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY:
*
* virDomainMigrate* params field: the maximum bandwidth (in MiB/s) that will
* be used for post-copy phase of a migration as VIR_TYPED_PARAM_ULLONG. If set
* to 0 or omitted, post-copy migration speed will not be limited.
*/
# define VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY "bandwidth.postcopy"
/**
* VIR_MIGRATE_PARAM_GRAPHICS_URI:
*
......@@ -1062,6 +1071,12 @@ int virDomainMigrateSetCompressionCache(virDomainPtr domain,
unsigned long long cacheSize,
unsigned int flags);
/* Domain migration speed flags. */
typedef enum {
/* Set or get maximum speed of post-copy migration. */
VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY = (1 << 0),
} virDomainMigrateMaxSpeedFlags;
int virDomainMigrateSetMaxSpeed(virDomainPtr domain,
unsigned long bandwidth,
unsigned int flags);
......
......@@ -9036,11 +9036,13 @@ virDomainMigrateSetCompressionCache(virDomainPtr domain,
* virDomainMigrateSetMaxSpeed:
* @domain: a domain object
* @bandwidth: migration bandwidth limit in MiB/s
* @flags: extra flags; not used yet, so callers should always pass 0
* @flags: bitwise-OR of virDomainMigrateMaxSpeedFlags
*
* The maximum bandwidth (in MiB/s) that will be used to do migration
* can be specified with the bandwidth parameter. Not all hypervisors
* will support a bandwidth cap
* will support a bandwidth cap. When VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY
* is set in @flags, this API sets the maximum bandwidth for the post-copy
* phase of the migration.
*
* Returns 0 in case of success, -1 otherwise.
*/
......@@ -9077,10 +9079,13 @@ virDomainMigrateSetMaxSpeed(virDomainPtr domain,
* virDomainMigrateGetMaxSpeed:
* @domain: a domain object
* @bandwidth: return value of current migration bandwidth limit in MiB/s
* @flags: extra flags; not used yet, so callers should always pass 0
* @flags: bitwise-OR of virDomainMigrateMaxSpeedFlags
*
* Get the current maximum bandwidth (in MiB/s) that will be used if the
* domain is migrated. Not all hypervisors will support a bandwidth limit.
* When VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY is set in @flags, this API
* gets the current maximum bandwidth for the post-copy phase of the
* migration.
*
* Returns 0 in case of success, -1 otherwise.
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册