On Fri, Jan 28, 2011 at 4:12 PM, Daniel P. Berrange <berra...@redhat.com> wrote:
> On Fri, Jan 28, 2011 at 03:54:01PM +0000, Niels de Vos wrote:
>> Hi there,
>>
>> obviously qemu-system-$ARCH, qemu-kvm and libvirt disagree about the most
>> suitable name for the PCI-bus. qemu-kvm and libvirt work nicely together by
>> using "pci.0" as name. Unfortunately libvirt seems to assume that also for
>> qemu-system-$ARCH the name "pci.0" should be passed on the command line.
>> When doing so, errors like "Bus 'pci.0' not found" get logged and qemu
>> aborts.
>>
>> This seems to be a very common case, googling for this seems to reveal that
>> loads of users have similar experiences. A common workaround seems to be to
>> write a little loader script that replaces parameters passed on to
>> qemu-system-$ARCH by valid ones (here: s/bus=pci.0/bus=pci/).
>>
>> As a user, I would really like to be able to start any type of emulated
>> machine, without needing to know the internal hardware layout. Passing
>> bus=pci seems sane to me, but unfortunately qemu-kvm does not accept this.
>> (At least on my standard configuration.) I guess that qemu-kvm is behaving
>> as intended, and qemu-system-$ARCH missed a hardware upgrade.
>>
>> In order to make libvirt, qemu-kvm and qemu-system-$ARCH work together, I
>> have changed the default name "pci" for emulated machines by "pci.0". The
>> tests I have done so far are succesful.
>>
>> However changing the name is only one possible solution, and there is a
>> major drawback... Any old scripts that pass bus=pci on the command line,
>> will not work anymore and result in a "Bus 'pci' not found" error.
>> Therefor I do not know if this is the correct route to succes.
>>
>> An alternative solution would be to match any bus-names from the command
>> line appended with ".0" to their non-numbered equivalent.
>>
>> I'm looking for thoughts and guidance on this issue. It can well be that
>> qemu is not the right place to fix this, and I should look into libvirt
>> instead.
>
> Personally I think it would have been nice if QEMU used a consistent
> name across all arches when we first introduced qdev, and indeed I
> did proposed this exact change in the past. There was no clear agreement
> to it before though, and if anything there was a slight preference to
> use 'pci.0' everywhere. We've now had several QEMU releases with this
> mix of naming, so changing it at this stage would cause even more
> pain for mgmt apps.
>
> So it is probably best to teach libvirt to use either 'pci' or 'pci.0'
> as appropropriate for the arch in question.

Thanks Daniel! I found your patche(s) and the discussion now too:
- http://comments.gmane.org/gmane.comp.emulators.qemu/70783

I'll check the libvirt alternative and will post a patch there.

Cheers,
Niels

Reply via email to