Re: [pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3
Ok, I have done more tests again, and It seem that I can trigger the bug. Sometimes the virtio-scsi controller can't be unplug after some plug|unplug. I can't reproduce 100%, sometimes it's after 3 hot|unplug, sometimes after 10 hot|unplug. I have also tried manual "device_del", and the controller is stuck. So, better to disable it for now. (I'll try to contact qemu devs to see where is the problem) - Mail original - De: "aderumier" <aderum...@odiso.com> À: "Wolfgang Bumiller" <w.bumil...@proxmox.com> Cc: "pve-devel" <pve-devel@pve.proxmox.com> Envoyé: Lundi 17 Octobre 2016 13:31:37 Objet: Re: [pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3 >>What kind of setup did you test this with? debian jessie, kernel 3.16. I have tried to remove/readd multiple time a virtio-scsi disk, no error. with qemu 2.6, I had errors when removing then readd same drive. I'll do more tests with arch to see if I can reproduce - Mail original - De: "Wolfgang Bumiller" <w.bumil...@proxmox.com> À: "aderumier" <aderum...@odiso.com> Cc: "pve-devel" <pve-devel@pve.proxmox.com> Envoyé: Lundi 17 Octobre 2016 13:17:45 Objet: Re: [pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3 So, when testing this on a linux guest (4.7.6, Arch) I still get errors (and see kernel traces in the guest's dmesg) with the iothread flag... Removing "works" (it's removed, but the qemu command still errors and you get an error in the pve GUI) - re-adding doesn't work (always shows me kernel stack traces in dmesg). What kind of setup did you test this with? On Mon, Oct 17, 2016 at 12:20:44PM +0200, Alexandre Derumier wrote: > changelog: check current running qemu process > > Signed-off-by: Alexandre Derumier <aderum...@odiso.com> > --- > PVE/QemuServer.pm | 13 + > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index 6376323..e4c385f 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -3516,9 +3516,11 @@ sub vm_deviceunplug { > > } elsif ($deviceid =~ m/^(scsi)(\d+)$/) { > > - #qemu 2.3 segfault on drive_del with virtioscsi + iothread > - my $device = parse_drive($deviceid, $conf->{$deviceid}); > - die "virtioscsi with iothread is not hot-unplugglable currently" if > $device->{iothread}; > + my $kvmver = get_running_qemu_version($vmid); > + if (!qemu_machine_feature_enabled (undef, $kvmver, 2, 7)) { > + my $device = parse_drive($deviceid, $conf->{$deviceid}); > + die "virtioscsi with iothread is hot-unplugglable since qemu 2.7" if > $device->{iothread}; > + } > > qemu_devicedel($vmid, $deviceid); > qemu_drivedel($vmid, $deviceid); > @@ -3564,7 +3566,10 @@ sub qemu_iothread_add { > sub qemu_iothread_del { > my($conf, $vmid, $deviceid) = @_; > > - my $device = parse_drive($deviceid, $conf->{$deviceid}); > + my $drive = $deviceid; > + $drive =~ s/virtioscsi/scsi/; > + my $device = parse_drive($drive, $conf->{$drive}); > + > if ($device->{iothread}) { > my $iothreads = vm_iothreads_list($vmid); > qemu_objectdel($vmid, "iothread-$deviceid") if > $iothreads->{"iothread-$deviceid"}; > -- > 2.1.4 > > ___ > pve-devel mailing list > pve-devel@pve.proxmox.com > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3
>>What kind of setup did you test this with? debian jessie, kernel 3.16. I have tried to remove/readd multiple time a virtio-scsi disk, no error. with qemu 2.6, I had errors when removing then readd same drive. I'll do more tests with arch to see if I can reproduce - Mail original - De: "Wolfgang Bumiller" <w.bumil...@proxmox.com> À: "aderumier" <aderum...@odiso.com> Cc: "pve-devel" <pve-devel@pve.proxmox.com> Envoyé: Lundi 17 Octobre 2016 13:17:45 Objet: Re: [pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3 So, when testing this on a linux guest (4.7.6, Arch) I still get errors (and see kernel traces in the guest's dmesg) with the iothread flag... Removing "works" (it's removed, but the qemu command still errors and you get an error in the pve GUI) - re-adding doesn't work (always shows me kernel stack traces in dmesg). What kind of setup did you test this with? On Mon, Oct 17, 2016 at 12:20:44PM +0200, Alexandre Derumier wrote: > changelog: check current running qemu process > > Signed-off-by: Alexandre Derumier <aderum...@odiso.com> > --- > PVE/QemuServer.pm | 13 + > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index 6376323..e4c385f 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -3516,9 +3516,11 @@ sub vm_deviceunplug { > > } elsif ($deviceid =~ m/^(scsi)(\d+)$/) { > > - #qemu 2.3 segfault on drive_del with virtioscsi + iothread > - my $device = parse_drive($deviceid, $conf->{$deviceid}); > - die "virtioscsi with iothread is not hot-unplugglable currently" if > $device->{iothread}; > + my $kvmver = get_running_qemu_version($vmid); > + if (!qemu_machine_feature_enabled (undef, $kvmver, 2, 7)) { > + my $device = parse_drive($deviceid, $conf->{$deviceid}); > + die "virtioscsi with iothread is hot-unplugglable since qemu 2.7" if > $device->{iothread}; > + } > > qemu_devicedel($vmid, $deviceid); > qemu_drivedel($vmid, $deviceid); > @@ -3564,7 +3566,10 @@ sub qemu_iothread_add { > sub qemu_iothread_del { > my($conf, $vmid, $deviceid) = @_; > > - my $device = parse_drive($deviceid, $conf->{$deviceid}); > + my $drive = $deviceid; > + $drive =~ s/virtioscsi/scsi/; > + my $device = parse_drive($drive, $conf->{$drive}); > + > if ($device->{iothread}) { > my $iothreads = vm_iothreads_list($vmid); > qemu_objectdel($vmid, "iothread-$deviceid") if > $iothreads->{"iothread-$deviceid"}; > -- > 2.1.4 > > ___ > pve-devel mailing list > pve-devel@pve.proxmox.com > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
Re: [pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3
So, when testing this on a linux guest (4.7.6, Arch) I still get errors (and see kernel traces in the guest's dmesg) with the iothread flag... Removing "works" (it's removed, but the qemu command still errors and you get an error in the pve GUI) - re-adding doesn't work (always shows me kernel stack traces in dmesg). What kind of setup did you test this with? On Mon, Oct 17, 2016 at 12:20:44PM +0200, Alexandre Derumier wrote: > changelog: check current running qemu process > > Signed-off-by: Alexandre Derumier> --- > PVE/QemuServer.pm | 13 + > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm > index 6376323..e4c385f 100644 > --- a/PVE/QemuServer.pm > +++ b/PVE/QemuServer.pm > @@ -3516,9 +3516,11 @@ sub vm_deviceunplug { > > } elsif ($deviceid =~ m/^(scsi)(\d+)$/) { > > - #qemu 2.3 segfault on drive_del with virtioscsi + iothread > - my $device = parse_drive($deviceid, $conf->{$deviceid}); > - die "virtioscsi with iothread is not hot-unplugglable currently" if > $device->{iothread}; > + my $kvmver = get_running_qemu_version($vmid); > + if (!qemu_machine_feature_enabled (undef, $kvmver, 2, 7)) { > + my $device = parse_drive($deviceid, $conf->{$deviceid}); > + die "virtioscsi with iothread is hot-unplugglable since qemu 2.7" > if $device->{iothread}; > + } > > qemu_devicedel($vmid, $deviceid); > qemu_drivedel($vmid, $deviceid); > @@ -3564,7 +3566,10 @@ sub qemu_iothread_add { > sub qemu_iothread_del { > my($conf, $vmid, $deviceid) = @_; > > -my $device = parse_drive($deviceid, $conf->{$deviceid}); > +my $drive = $deviceid; > +$drive =~ s/virtioscsi/scsi/; > +my $device = parse_drive($drive, $conf->{$drive}); > + > if ($device->{iothread}) { > my $iothreads = vm_iothreads_list($vmid); > qemu_objectdel($vmid, "iothread-$deviceid") if > $iothreads->{"iothread-$deviceid"}; > -- > 2.1.4 > > ___ > pve-devel mailing list > pve-devel@pve.proxmox.com > http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
[pve-devel] [PATCH 2/3] enable virtio-scsi iothread hot-unplug for qemu 2.7 v3
changelog: check current running qemu process Signed-off-by: Alexandre Derumier--- PVE/QemuServer.pm | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 6376323..e4c385f 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -3516,9 +3516,11 @@ sub vm_deviceunplug { } elsif ($deviceid =~ m/^(scsi)(\d+)$/) { - #qemu 2.3 segfault on drive_del with virtioscsi + iothread - my $device = parse_drive($deviceid, $conf->{$deviceid}); - die "virtioscsi with iothread is not hot-unplugglable currently" if $device->{iothread}; + my $kvmver = get_running_qemu_version($vmid); + if (!qemu_machine_feature_enabled (undef, $kvmver, 2, 7)) { + my $device = parse_drive($deviceid, $conf->{$deviceid}); + die "virtioscsi with iothread is hot-unplugglable since qemu 2.7" if $device->{iothread}; + } qemu_devicedel($vmid, $deviceid); qemu_drivedel($vmid, $deviceid); @@ -3564,7 +3566,10 @@ sub qemu_iothread_add { sub qemu_iothread_del { my($conf, $vmid, $deviceid) = @_; -my $device = parse_drive($deviceid, $conf->{$deviceid}); +my $drive = $deviceid; +$drive =~ s/virtioscsi/scsi/; +my $device = parse_drive($drive, $conf->{$drive}); + if ($device->{iothread}) { my $iothreads = vm_iothreads_list($vmid); qemu_objectdel($vmid, "iothread-$deviceid") if $iothreads->{"iothread-$deviceid"}; -- 2.1.4 ___ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel