mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
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: Jiri Denemark <jdenemar@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
08d44263c8
commit
cdc1b1d71b
@ -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.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user