
On Sun, Aug 4, 2013 at 6:50 PM, Doug Goldstein <cardoe@gentoo.org> wrote:
On Sat, Aug 3, 2013 at 9:11 PM, Laine Stump <laine@laine.org> wrote:
On 08/03/2013 10:06 PM, Doug Goldstein wrote:
On Sat, Aug 3, 2013 at 8:48 PM, Laine Stump <laine@laine.org> wrote:
On 08/03/2013 09:36 PM, Doug Goldstein wrote:
On Sat, Aug 3, 2013 at 6:28 PM, Laine Stump <laine@laine.org> wrote:
...and here is the result of applying all 10 patches of this 7 patch series, and starting up a domain using the config file attached to the end of this message:
# lspci 00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller 00:01.0 VGA compatible controller: Red Hat, Inc. Device 0100 (rev 04) 00:02.0 PCI bridge: Red Hat, Inc. Device 0001 00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02) 01:01.0 PCI bridge: Red Hat, Inc. Device 0001 02:01.0 Ethernet controller: Red Hat, Inc Virtio network device 02:02.0 Ethernet controller: Red Hat, Inc Virtio network device 02:03.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01) 02:04.0 Communication controller: Red Hat, Inc Virtio console 02:05.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 02:05.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 02:05.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) 02:05.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) 02:06.0 SCSI storage controller: Red Hat, Inc Virtio block device 02:07.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon 02:08.0 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA AHCI Controller (rev 02)
You'll notice that everything except the VGA, the implicit devices are
Yay!
Now if virt-manager just provided a way to change the machinetype of guests as they were being created... (does virt-manager explicitly specify USB controllers? Currently the Q35 doesn't automatically create a USB controller (see the patch comments)
========= <domain type='kvm'> <name>F15-q35</name> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <os> <type arch='x86_64' machine='pc-q35-1.5'>hvm</type> <boot dev='hd'/> <bootmenu enable='yes'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/F15.img'/> <target dev='vda' bus='virtio'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/home/laine/example.iso'/> <target dev='hdc' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <controller type='virtio-serial' index='0'/> <controller type='usb' index='0' model='ich9-ehci1'/> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x2'/> </controller> <controller type='sata' index='0'/> <controller type='sata' index='1'/> <controller type='pci' index='0' model='pcie-root'/> <interface type='network'> <source network='ipv6'/> <model type='virtio'/> </interface> <interface type='network'> <source network='isolated'/> <model type='virtio'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes'/> <sound model='ac97'/> <video> <model type='qxl' ram='65536' vram='9216' heads='1'/> </video> <memballoon model='virtio'/> </devices> </domain>
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list Excellent thanks for providing a reference example. I've been trying to review all your patches and work through testing bits and pieces myself. I should have probably spoke up on the ML rather than remaining silent. I'll finish up testing it tonight and ACK a handful shortly.
I have made some small changes to some of the other patches in the meantime. If you're serious to the point of actually testing them out, I should repost the ones I haven't yet pushed (only the first three). Coming up momentarily... Yeah please repost. Until you mentioned the seabios stuff in your last e-mail I had been debugging that.
That took me a while to figure out too (and I was getting really worried until I did). I'm just glad that Alex Williamson had previously told me that qemu wasn't strict about the "can't plug a PCI device into a PCIe slot" rule.
I've got a CentOS 6.4 VM I'm trying to get up under Q35 on qemu-1.5.2 + libvirt master + your patch set as part of my review.
Cool! The more real world testing the better! Thanks for taking the time to do that. (My testing has been with an existing Fedora 15 guest that was hanging around. Not sure why I picked that one; maybe because it was the most disposable item on the list :-)
So with v2 I've achieved success as well with my CentOS 6.4 VM. Your domain XML is shorter than mine (I'm using dumpxml --inactive) but I'll post mine.
<domain type='kvm'> <name>altima</name> <uuid>c2ca3b04-2ae9-0dd2-9855-109dcd90e38c</uuid> <description>CentOS 6.2 i386</description> <memory unit='KiB'>524288</memory> <currentMemory unit='KiB'>524288</currentMemory> <vcpu placement='static'>1</vcpu> <os> <type arch='x86_64' machine='pc-q35-1.5'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup' track='guest'> <catchup threshold='123' slew='120' limit='10000'/> </timer> <timer name='pit' tickpolicy='delay'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/vms/altima.img'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/> </disk> <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='sata' index='1'> <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='dmi-to-pci-bridge'> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x2'/> </controller> <controller type='ide' index='0'/> <interface type='bridge'> <mac address='52:54:00:a6:23:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/altima.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <channel type='spicevmc'> <target type='virtio' name='com.redhat.spice.0'/> <address type='virtio-serial' controller='0' bus='0' port='2'/> </channel> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <graphics type='spice' autoport='yes'/> <video> <model type='qxl' ram='65536' vram='65536' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/> </memballoon> </devices> </domain>
[root@altima ~]# lspci 00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller 00:01.0 VGA compatible controller: Red Hat, Inc. Device 0100 (rev 04) 00:02.0 PCI bridge: Red Hat, Inc. Device 0001 00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02) 00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02) 00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02) 01:01.0 PCI bridge: Red Hat, Inc. Device 0001 02:01.0 Ethernet controller: Red Hat, Inc Virtio network device 02:02.0 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02) 02:03.0 Communication controller: Red Hat, Inc Virtio console 02:04.0 SCSI storage controller: Red Hat, Inc Virtio block device 02:05.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon 02:06.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) 02:06.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) 02:06.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
I did notice that the EHCI USB controller is missing on bus 2 slot 7 function 7. Not sure if I did something wrong there in my config or we're still missing some of that plumbing.
-- Doug Goldstein
Now for the ugly side... You can see below I clearly screwed up the config with regards to the bus, but I just wanted to see how it would react. domain type='kvm'> <name>altima</name> <uuid>c2ca3b04-2ae9-0dd2-9855-109dcd90e38c</uuid> <description>CentOS 6.2 i386</description> <memory unit='KiB'>524288</memory> <currentMemory unit='KiB'>524288</currentMemory> <vcpu placement='static'>1</vcpu> <os> <type arch='x86_64' machine='pc-q35-1.5'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'> <timer name='rtc' tickpolicy='catchup' track='guest'> <catchup threshold='123' slew='120' limit='10000'/> </timer> <timer name='pit' tickpolicy='delay'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/qemu-kvm</emulator> <disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/vms/altima.img'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='block' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='sata' index='0'/> <controller type='sata' index='1'/> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <interface type='bridge'> <mac address='52:54:00:a6:23:4f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/altima.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <channel type='spicevmc'> <target type='virtio' name='com.redhat.spice.0'/> <address type='virtio-serial' controller='0' bus='0' port='2'/> </channel> <input type='tablet' bus='usb'/> <input type='mouse' bus='ps2'/> <graphics type='spice' autoport='yes'/> <video> <model type='qxl' ram='65536' vram='65536' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </memballoon> </devices> </domain> Results in the following: error: internal error: PCI bus 0000:00 is not compatible with the device. Device requires a standard PCI slot, which is not provided by this bus Two issues: - Not sure I'd really call that a VIR_ERR_INTERNAL_ERROR. - What device? I screwed them all up. Might be nice to provide some info about the device in the error message. That was in patch 3/7 from the original series, which is already pushed. -- Doug Goldstein