Re: [PATCH] qemu: Don't use legacy USB for aarch64 mach-virt guests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/17/2016 09:20 AM, Andrea Bolognani wrote:
The '-usb' option doesn't have any effect for aarch64 mach-virt
guests,

Do you mean that having -usb on the commandline doesn't result in a usb controller? qemu should also be giving an error then...


  so the fact that it's currently enabled by default is not
really causing any issue.

However, that might change in the future (although unlikely), and
having it as part of the QEMU command line can cause confusion to
someone looking through the process list.

Avoid it completely, like it's already happening for q35.

I've forgotten if this was intended to solve some problem, or if it's just a side-effect of the fact that a libvirt Q35 config originally didn't add any usb controller by default. Everything around the "add a 'default' usb controller by default if none is specified" has always been so mixed up anyway. It's really too bad we have to keep all that cruft around just for backwards compatibility with something that we decided was a bad idea 5 or 6 years ago)


At any rate, again (as with your earlier "eliminate the PCI controllers patch" which I'm reviewing now) you are using qemuDomainMachineIsVirt(), which doesn't check the arch, but only machinetype (and so would match on virt for any other arch). But in this case I think any arch modern enough to have a virt machinetype is also modern enough that we won't want "-usb" (personally I think that any USB controller added to any guest should always have the controller model fully specified, so we really should eliminate any possibility of "-usb" everywhere unless there is some odd arch that has no other way to add a USB controller.

ACK from me.

---
This requires

   https://www.redhat.com/archives/libvir-list/2016-June/msg01157.html

to apply cleanly, but it's not really related. Applying it
on top of master instead should just be a matter of fixing
a few trivial merge conflicts in the test suite.

CC:ing Drew for extra assurance that doing this is indeed
completely safe :)

  src/qemu/qemu_command.c                                                | 1 +
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-aavmf-virtio-mmio.args     | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-cpu-passthrough.args       | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.args              | 3 +--
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.args                | 3 +--
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.args                | 3 +--
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-kvm-32-on-64.args          | 1 -
  .../qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args              | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args      | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args           | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args    | 1 -
  .../qemuxml2argv-aarch64-virtio-pci-manual-addresses.args              | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-arm-virt-virtio.args               | 1 -
  tests/qemuxml2argvdata/qemuxml2argv-balloon-mmio-deflate.args          | 1 -
  14 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4a8def1..6944129 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2875,6 +2875,7 @@ qemuBuildControllerDevCommandLine(virCommandPtr cmd,
if (usbcontroller == 0 &&
          !qemuDomainMachineIsQ35(def) &&
+        !qemuDomainMachineIsVirt(def) &&
          !ARCH_IS_S390(def->os.arch))
          virCommandAddArg(cmd, "-usb");
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-aavmf-virtio-mmio.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-aavmf-virtio-mmio.args
index 3f05dfb..1de2ecf 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-aavmf-virtio-mmio.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-aavmf-virtio-mmio.args
@@ -22,7 +22,6 @@ QEMU_AUDIO_DRV=none \
  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
  -dtb /aarch64.dtb \
  -device virtio-serial-device,id=virtio-serial0 \
--usb \
  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-cpu-passthrough.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-cpu-passthrough.args
index 4ae3923..b394066 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-cpu-passthrough.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-cpu-passthrough.args
@@ -17,6 +17,5 @@ QEMU_AUDIO_DRV=none \
  -nodefaults \
  -monitor unix:/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
  -boot c \
--usb \
  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.args
index 61ee5af..a16b8b6 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.args
@@ -16,5 +16,4 @@ QEMU_AUDIO_DRV=none \
  -nodefaults \
  -monitor unix:/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
  -no-acpi \
--boot c \
--usb
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.args
index d3ac955..031a31e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.args
@@ -16,5 +16,4 @@ QEMU_AUDIO_DRV=none \
  -nodefaults \
  -monitor unix:/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
  -no-acpi \
--boot c \
--usb
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.args
index 27fa1f5..f078fd8 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.args
@@ -16,5 +16,4 @@ QEMU_AUDIO_DRV=none \
  -nodefaults \
  -monitor unix:/tmp/lib/domain--1-aarch64test/monitor.sock,server,nowait \
  -no-acpi \
--boot c \
--usb
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-kvm-32-on-64.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-kvm-32-on-64.args
index 23bb517..284aacf 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-kvm-32-on-64.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-kvm-32-on-64.args
@@ -20,7 +20,6 @@ QEMU_AUDIO_DRV=none \
  -kernel /arm.kernel \
  -initrd /arm.initrd \
  -append 'console=ttyAMA0,115200n8 rw root=/dev/vda rootwait physmap.enabled=0' \
--usb \
  -drive file=/arm.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
index 3e6bee9..6c2a908 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-2.6-virtio-pci-default.args
@@ -22,7 +22,6 @@ QEMU_AUDIO_DRV=none \
  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
  -dtb /aarch64.dtb \
  -device virtio-serial-device,id=virtio-serial0 \
--usb \
  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
index 06a4733..ab45209 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-default-nic.args
@@ -20,6 +20,5 @@ QEMU_AUDIO_DRV=none \
  -kernel /aarch64.kernel \
  -initrd /aarch64.initrd \
  -append console=ttyAMA0 \
--usb \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
  -net user,vlan=0,name=hostnet0
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
index 566bee2..1ed5462 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virt-virtio.args
@@ -22,7 +22,6 @@ QEMU_AUDIO_DRV=none \
  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
  -dtb /aarch64.dtb \
  -device virtio-serial-device,id=virtio-serial0 \
--usb \
  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
index 566bee2..1ed5462 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-default.args
@@ -22,7 +22,6 @@ QEMU_AUDIO_DRV=none \
  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
  -dtb /aarch64.dtb \
  -device virtio-serial-device,id=virtio-serial0 \
--usb \
  -drive file=/aarch64.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-manual-addresses.args b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-manual-addresses.args
index 4e5dbdb..8245854 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-manual-addresses.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-virtio-pci-manual-addresses.args
@@ -25,7 +25,6 @@ QEMU_AUDIO_DRV=none \
  -device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \
  -device pci-bridge,chassis_nr=3,id=pci.3,bus=pci.1,addr=0x1 \
  -device virtio-scsi-pci,id=scsi0,bus=pci.3,addr=0x1 \
--usb \
  -drive file=/aarch64.raw,format=raw,if=none,id=drive-scsi0-0-0-0 \
  -device scsi-disk,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,\
  id=scsi0-0-0-0 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-arm-virt-virtio.args b/tests/qemuxml2argvdata/qemuxml2argv-arm-virt-virtio.args
index c736f60..d3e8efc 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-arm-virt-virtio.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-arm-virt-virtio.args
@@ -21,7 +21,6 @@ QEMU_AUDIO_DRV=none \
  -append 'console=ttyAMA0,115200n8 rw root=/dev/vda rootwait physmap.enabled=0' \
  -dtb /arm.dtb \
  -device virtio-serial-device,id=virtio-serial0 \
--usb \
  -drive file=/arm.raw,format=raw,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-device,drive=drive-virtio-disk0,id=virtio-disk0 \
  -device virtio-net-device,vlan=0,id=net0,mac=52:54:00:09:a4:37 \
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-balloon-mmio-deflate.args b/tests/qemuxml2argvdata/qemuxml2argv-balloon-mmio-deflate.args
index 0fd9107..42709c5 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-balloon-mmio-deflate.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-balloon-mmio-deflate.args
@@ -21,5 +21,4 @@ QEMU_AUDIO_DRV=none \
  -initrd /aarch64.initrd \
  -append 'earlyprintk console=ttyAMA0,115200n8 rw root=/dev/vda rootwait' \
  -dtb /aarch64.dtb \
--usb \
  -device virtio-balloon-device,id=balloon0,deflate-on-oom=on


--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]