On Sun, Aug 4, 2013 at 6:50 PM, Doug Goldstein <cardoe@xxxxxxxxxx> wrote: > On Sat, Aug 3, 2013 at 9:11 PM, Laine Stump <laine@xxxxxxxxx> wrote: >> On 08/03/2013 10:06 PM, Doug Goldstein wrote: >>> On Sat, Aug 3, 2013 at 8:48 PM, Laine Stump <laine@xxxxxxxxx> wrote: >>>> On 08/03/2013 09:36 PM, Doug Goldstein wrote: >>>>> On Sat, Aug 3, 2013 at 6:28 PM, Laine Stump <laine@xxxxxxxxx> 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@xxxxxxxxxx >>>>>> 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list