[pve-devel] [PATCH qemu-server] disable usb hotplug for now
Fabian Grünbichler
f.gruenbichler at proxmox.com
Mon Jul 4 14:07:49 CEST 2016
is there a specific reason for the mix of "disabling styles" here?
first hunk adds a die and comments the original code, second replaces
the orig. code completely with a die statement, and the last two add
additional (final) die statements..
imho it would make more sense to stick to one way or the other - I think
I'd prefer an early die + comment for the unreliable code if it is
supposed to be fixed and reintroduced soon, or a die and removal/revert
of the unreliable code if this won't work for the forseeable future.
On Thu, Jun 23, 2016 at 11:20:07AM +0200, Dominik Csapak wrote:
> we have a few problems with hotplug at the moment:
> qemu may add usb hubs when adding usb devices but fails to remove them
> when removing the usb device (this is a qemu bug)
>
> also when starting a guest with a usb device we add ehci and uchi
> controllers, which we cannot hot unplug
>
> with those devices, it is impossible to live migrate the guest
> to another host, meaning even if you remove all usb devices,
> the migrate fails
>
> so we deactivate usb hotplugging for now
>
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
> PVE/QemuServer.pm | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index b6ad27a..3df8f84 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -3273,7 +3273,8 @@ sub vm_deviceplug {
>
> } elsif ($deviceid =~ m/^usb(\d+)$/) {
>
> - qemu_deviceadd($vmid, PVE::QemuServer::USB::print_usbdevice_full($conf, $deviceid, $device));
> + die "usb hotplug currently not reliable\n";
> + #qemu_deviceadd($vmid, PVE::QemuServer::USB::print_usbdevice_full($conf, $deviceid, $device));
>
> } elsif ($deviceid =~ m/^(virtio)(\d+)$/) {
>
> @@ -3372,8 +3373,7 @@ sub vm_deviceunplug {
>
> } elsif ($deviceid =~ m/^usb\d+$/) {
>
> - qemu_devicedel($vmid, $deviceid);
> - qemu_devicedelverify($vmid, $deviceid);
> + die "usb hotplug currently not reliable\n";
>
> } elsif ($deviceid =~ m/^(virtio)(\d+)$/) {
>
> @@ -3911,6 +3911,8 @@ sub vmconfig_hotplug_pending {
> }
> } elsif ($opt =~ m/^usb\d+/) {
> die "skip\n" if !$hotplug_features->{usb} || $conf->{$opt} =~ m/spice/i;
> + # usb hotplug unreliable
> + die "skip\n";
> vm_deviceunplug($vmid, $conf, $opt);
> } elsif ($opt eq 'vcpus') {
> die "skip\n" if !$hotplug_features->{cpu};
> @@ -3966,6 +3968,8 @@ sub vmconfig_hotplug_pending {
> die "skip\n" if !$hotplug_features->{usb} || $value =~ m/spice/i;
> my $d = eval { PVE::JSONSchema::parse_property_string($usbdesc->{format}, $value) };
> die "skip\n" if !$d;
> + # usb hotplug unreliable
> + die "skip\n";
> qemu_usb_hotplug($storecfg, $conf, $vmid, $opt, $d);
> } elsif ($opt eq 'vcpus') {
> die "skip\n" if !$hotplug_features->{cpu};
> --
> 2.1.4
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
More information about the pve-devel
mailing list