qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 0/1] qemu-system-$ARCH incompatible with qemu-kv


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH 0/1] qemu-system-$ARCH incompatible with qemu-kvm and bus=pci.0 parameter
Date: Fri, 28 Jan 2011 16:12:08 +0000
User-agent: Mutt/1.5.21 (2010-09-15)

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.

Regards,
Daniel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]