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