[Users] Ovirt - double use of PCI Address
Oved Ourfalli
ovedo at redhat.com
Tue Jun 5 15:20:03 UTC 2012
----- Original Message -----
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com>
> To: "Oved Ourfalli" <ovedo at redhat.com>
> Cc: users at ovirt.org, "Igor Lvovsky" <ilvovsky at redhat.com>
> Sent: Tuesday, June 5, 2012 6:10:30 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Hi Again
>
> I just defined new server on Ovirt admin portal. I think define
> monitor is for desktop virtualization. is it true?
>
> I switched more than two time between spice and vnc. do you think
> switching between vnc and spice is the reason for this problem?
>
And did the problem occur?
Trying to reproduce it now and I can't, although I seem to have some VMs with more than one monitor in the vm_device table, but all have this property set to 1.
I'll update you in case I understand the reason. If you have a solid reproduction then please share it.
Thank you,
Oved
> I'm going to delete extra video card. but it's very interesting for
> me to know about reason of this problem.
>
>
>
>
> Thanks
>
> Oved Ourfalli <ovedo at redhat.com> wrote on Tue, 05 Jun 2012 10:16:07
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: "Oved Ourfalli"
> <ovedo at redhat.com> Cc: users at ovirt.org , "Igor Lvovsky"
> <ilvovsky at redhat.com> Sent: Tuesday, June 5, 2012 5:06:55 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Thanks. But i didn't add 3 video card! why there is 3 video card?is
> it bug? Basically the number of devices should grow or shrink,
> according to the number of monitors you choose in the VM properties.
> If it has more then it is a bug.
> I'll take a look at it.
>
> can you please explain more about how can i fix this problem? i must
> go to the database and then i leave the address as is? i don't
> understand last your sentence.
> Thanks for you attention. Thinking of it, if you don't want 3 devices
> you can just delete two of the three video controllers in order to
> workaround the issue.
> In order to do that you'll have to do the following in the database:
> 1. Find the vm_id of your VM. You can do that by looking at the
> vm_static table.
> 2. Then, in the vm_device table, find the video devices.
> 3. Delete two of the three devices.
>
> Let me know if you need more help.
>
> Oved Ourfalli <ovedo at redhat.com> wrote on Tue, 05 Jun 2012 10:01:00
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: "Oved Ourfalli"
> <ovedo at redhat.com> Cc: users at ovirt.org Sent: Tuesday, June 5, 2012
> 4:42:09 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
> /*Oved Ourfalli <ovedo at redhat.com> */ wrote on Tue, 05 Jun 2012
> 09:29:19
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: users at ovirt.org
> Sent: Tuesday, June 5, 2012 4:24:46 PM
> Subject: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Hi
>
> I setup ovirt and some other things. I make a virtual machine
> (CentOS
> 6.2). installed and configured it. then power off it and make a
> snapshot and create clone image from it.
>
> when i trying to start new machine, i got this error:
>
> 2012-06-05 13:16:15.433+0000: 2375: error :
> qemuCollectPCIAddress:743
> : XML error: Attempted double use of PCI Address '0:0:2.0'
>
> I remove the new machine and try to start old machine. i get the
> error again! and i'm enable to start old machine. Can you please
> attach the engine.log and vdsm.log files? Yes, I attached both of
> them.
>
> Are you working with the most updated upstream code? I'm working with
> build from git -
> faef6297b0d01203e88040b2707f9abfbd754d3f. more information is
> available
> here: http://www.dreyou.org/ovirt/ You can see the issue in vdsm.log
> file. You have 3 video cards, all on the same address.
>
> <video>
> <address domain="0x0000" function="0x0" slot="0x02" type="pci"
> bus="0x00"/>
> <model heads="1" type="qxl" vram="65536"/>
> </video>
> <video>
> <address domain="0x0000" function="0x0" slot="0x02" type="pci"
> bus="0x00"/>
> <model heads="1" type="qxl" vram="65536"/>
> </video>
> <video>
> <address domain="0x0000" function="0x0" slot="0x02" type="pci"
> bus="0x00"/>
> <model heads="1" type="qxl" vram="65536"/>
> </video>
>
> Looking at the vdsm code (in vdsm/libvirtvm.py), you can see why such
> a thing might happen (also look at the FIXME comment :-) ).
>
> # FIXME. We have an identification problem here.
> # Video card device has not unique identifier, except the
> alias
> # (but backend not aware to device's aliases).
> # So, for now we can only assign the address according to
> devices order.
> for vc in self._devices[vm.VIDEO_DEVICES]:
> if not hasattr(vc, 'address') or not hasattr(vc,
> 'alias'):
> vc.alias = alias
> vc.address = address
> break
> # Update vm's conf with address
> for dev in self.conf['devices']:
> if (dev['type'] == vm.VIDEO_DEVICES) and \
> (not dev.get('address') or not dev.get('alias')):
> dev['address'] = address
> dev['alias'] = alias
> break
>
> The code above is responsible to return the engine core the device
> addresses, after libvirt executes the VM, so that they will be
> persistent, and used in future executions of the VM.
>
> Now, the engine core is aware of the alias (as of the exact commit
> you used :-) ), but the first time you run the VM, you can get the
> addresses wrong, as the alias isn't taken into account.
>
> Would you like to try to fix this issue? The fix will be to make a
> better logic in the code above. Similar examples can be found in
> this file, for example in the section that does the same for
> controllers.
>
> If not, let me know and I'll go ahead and fix that.
>
> In the meantime, you can workaround this issue by going to the
> vm_device table, identifying these three devices, leave the address
> as is for the first video card of your VM (you probably have
> video0/1/2 as aliases), and try to run the VM again.
> Now, the engine will pass the one with the correct address as the
> first, and libvirt will allocate the right addresses to the other
> two.
> Hopefully this will be enough.
>
> Oved
>
>
>
> We had an issue with the monitors, in which the order of the
> monitor devices is important, as the first one needs to get the
> address 0:0:2.0, but that issue was fixed.
> Are you using more than one monitor? No, I'm using spice or vnc just
> for getting graphic.
>
> The vdsm.log fill will help a lot here, as it contains the VM's
> domain XML file, which will show us all the devices we send
> libvirt, and all the addresses that the engine expects to get from
> it.
>
> Any idea?
>
> Thanks.
>
>
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list
> Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
>
More information about the Users
mailing list