Support set the CPU affinity of the live migration thread to improve
the migration performance in specific cases. By default, the migration
thread shares CPU resources with the VM process. With those API, support
pin migration thread to expected CPU list to avoid preempting CPU
resources of VM process.
New API 'pinMigrationThread' and virsh command 'virsh migrationpin'
is used to pin migration thread to expected CPU list before or during
migration.
New migration param 'migration.pin' is used to support migration pin
via interface 'virDomainMigrateToURI3'.
Jiang Jiacheng (2):
migration/migration-pin: support migration thread pin by virsh command
migration/migration-pin/multifd-pin: add migration pin status handle
zhengchuan (10):
migration/migration-pin: get migration pid for migration pin
migration/migration-pin: pin migration pid by given cpumap
migration/migration-pin: add qemu monitor callback functions
migration/migration-pin: add migrationpin for migration parameters
migration/migration-pin: get cpumap from migration.pin
migration/migration-pin: add domainMigrationPid for
qemuMonitorCallbacks
migration/multifd-pin: get multifd pid for migration pin
migration/multifd-pin: pin multifd pid by given cpumap
migration/multifd-pin: add qemu monitor callback functions
migration/multifd-pin: support migration multifd thread pin
include/libvirt/libvirt-domain.h | 19 ++
src/conf/domain_conf.c | 9 +
src/conf/domain_conf.h | 11 ++
src/conf/virconftypes.h | 2 +
src/driver-hypervisor.h | 16 ++
src/libvirt-domain.c | 144 +++++++++++++++
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 7 +
src/qemu/qemu_domain.c | 5 +
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 175 ++++++++++++++++++
src/qemu/qemu_migration.c | 5 +
src/qemu/qemu_migration.h | 1 +
src/qemu/qemu_migration_params.c | 21 +++
src/qemu/qemu_migration_params.h | 4 +
src/qemu/qemu_monitor.c | 20 ++
src/qemu/qemu_monitor.h | 13 ++
src/qemu/qemu_monitor_json.c | 32 ++++
src/qemu/qemu_process.c | 303 +++++++++++++++++++++++++++++++
src/qemu/qemu_process.h | 15 ++
src/remote/remote_driver.c | 3 +
src/remote/remote_protocol.x | 43 ++++-
src/remote_protocol-structs | 28 +++
src/util/vircgroup.c | 3 +
src/util/vircgroup.h | 1 +
tools/virsh-domain.c | 69 +++++++
26 files changed, 954 insertions(+), 1 deletion(-)
--
2.33.0