[libvirt] [PATCH v2] send default USB controller in xml to destination during migration
Cole Robinson
crobinso at redhat.com
Fri Apr 29 17:09:26 UTC 2016
On 04/29/2016 10:01 AM, Shivaprasad G Bhat wrote:
> The default USB controller is not sent to destination as the older versions
> of libvirt(0.9.4 or earlier as I see in commit log of 409b5f54) didn't
> support them. For some archs where the support started much later can
> safely send the USB controllers without this worry. So, send the controller
> to destination for all archs except x86. Moreover this is not very applicable
> to x86 as the USB controller has model ich9_ehci1 on q35 and for pc-i440fx,
> there cant be any slots before USB as it is fixed on slot 1.
>
> The patch fixes a bug that, if the USB controller happens to occupy
> a slot after disks/interfaces and one of them is hot-unplugged, then
> the default USB controller added on destination takes the smallest slot
> number and that would lead to savestate mismatch and migration
> failure. Seen and verified on PPC64.
>
> Signed-off-by: Shivaprasad G Bhat <sbhat at linux.vnet.ibm.com>
> ---
> src/qemu/qemu_domain.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 6262bfe..963ff35 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -2599,7 +2599,11 @@ qemuDomainDefFormatBuf(virQEMUDriverPtr driver,
> usb = def->controllers[i];
> }
> }
> - if (usb && usb->idx == 0 && usb->model == -1) {
> + /* The original purpose of the check was the migration compatibility
> + * with libvirt <= 0.9.4. Limitation doesn't apply to other archs
> + * and can cause problems on PPC64.
> + */
> + if (ARCH_IS_X86(def->os.arch) && usb && usb->idx == 0 && usb->model == -1) {
> VIR_DEBUG("Removing default USB controller from domain '%s'"
> " for migration compatibility", def->name);
> toremove++;
>
ACK, but I'll push next week after the release is out.
Thanks,
Cole
More information about the libvir-list
mailing list