my main goal is to add support migration with host NIC
passthrough devices and keep the network connectivity.
this series patch base on Shradha's patches on
https://www.redhat.com/archives/libvir-list/2012-November/msg01324.html
which is add migration support for host passthrough devices.
1) unplug the ephemeral devices before migration
2) do native migration
3) when migration finished, hotplug the ephemeral devices
TODO:
keep network connectivity on guest level by bonding device.
Chen Fan (6):
conf: add ephemeral element for hostdev supporting migration
qemu: Save ephemeral devices into qemuDomainObjPrivate
qemu: add check ephemeral devices only for PCI host devices
migration: Migration support for ephemeral hostdevs
managedsave: move the domain xml handling forward to stop CPU
managedsave: add managedsave support for ephemeral host devices
docs/schemas/domaincommon.rng | 10 ++
docs/schemas/network.rng | 5 +
src/conf/domain_conf.c | 14 +-
src/conf/domain_conf.h | 1 +
src/conf/network_conf.c | 13 ++
src/conf/network_conf.h | 1 +
src/network/bridge_driver.c | 1 +
src/qemu/qemu_command.c | 11 ++
src/qemu/qemu_domain.c | 5 +
src/qemu/qemu_domain.h | 3 +
src/qemu/qemu_driver.c | 48 +++---
src/qemu/qemu_migration.c | 182 ++++++++++++++++++++-
src/qemu/qemu_migration.h | 9 +
src/qemu/qemu_process.c | 12 ++
tests/networkxml2xmlin/hostdev-pf.xml | 2 +-
tests/networkxml2xmlin/hostdev.xml | 2 +-
tests/networkxml2xmlout/hostdev-pf.xml | 2 +-
tests/networkxml2xmlout/hostdev.xml | 2 +-
.../qemuxml2argv-controller-order.xml | 2 +-
.../qemuxml2argv-hostdev-pci-address-device.xml | 2 +-
.../qemuxml2argv-hostdev-pci-address.xml | 2 +-
.../qemuxml2argv-hostdev-scsi-autogen-address.xml | 22 +--
.../qemuxml2argv-hostdev-scsi-lsi-iscsi-auth.xml | 4 +-
.../qemuxml2argv-hostdev-scsi-lsi-iscsi.xml | 4 +-
.../qemuxml2argv-hostdev-scsi-lsi.xml | 2 +-
.../qemuxml2argv-hostdev-scsi-rawio.xml | 2 +-
.../qemuxml2argv-hostdev-scsi-readonly.xml | 2 +-
.../qemuxml2argv-hostdev-scsi-sgio.xml | 2 +-
.../qemuxml2argv-hostdev-scsi-shareable.xml | 2 +-
...qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.xml | 4 +-
.../qemuxml2argv-hostdev-scsi-virtio-iscsi.xml | 4 +-
.../qemuxml2argv-hostdev-scsi-virtio-scsi.xml | 2 +-
...emuxml2argv-hostdev-usb-address-device-boot.xml | 2 +-
.../qemuxml2argv-hostdev-usb-address-device.xml | 2 +-
.../qemuxml2argv-hostdev-usb-address.xml | 2 +-
.../qemuxml2argv-hostdev-vfio-multidomain.xml | 2 +-
.../qemuxml2argvdata/qemuxml2argv-hostdev-vfio.xml | 2 +-
.../qemuxml2argv-net-hostdev-multidomain.xml | 2 +-
.../qemuxml2argv-net-hostdev-vfio-multidomain.xml | 2 +-
.../qemuxml2argv-net-hostdev-vfio.xml | 2 +-
.../qemuxml2argvdata/qemuxml2argv-net-hostdev.xml | 2 +-
tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml | 4 +-
...qemuxml2xmlout-hostdev-scsi-autogen-address.xml | 22 +--
43 files changed, 340 insertions(+), 83 deletions(-)
--
1.9.3