On Thu, Sep 20, 2007 at 05:07:30PM +0100, Daniel P. Berrange wrote:
On Thu, Sep 20, 2007 at 10:45:03AM +0200, Gerd Hoffmann wrote:
> Daniel P. Berrange wrote:
> > Before starting any guest, the QEMU driver needs to figure out what version
> > of QEMU is in use & thus determine whether it supports particular command
> > line flags. We currently do that just by calling /usr/bin/qemu, since all
> > the various qemu-system-XXX binaries share the same syntax. The only problem
> > is that qemu-kvm does not neccessarily match the version of qemu installed.
> > So we detect QEMU version 0.8.2, but KVM is 0.9.0 based. The result is that
> > we pass the wrong style VNC argument to KVM & it fails to start. The
second
> > problem is that even if you only ever want to run KVM guests, you still have
> > to have KVM itself installed.
>
> We have the same problem if the domain.xml has
> "<emulator>/path/to/qemu-foo</emulator>" specified, which I
think isn't
> addressed by this patch ...
Nope it is not addressed. I think maybe instead of detecting once for QEMU
and KVM for the QEMU driver as whole, I'll move the flags into the per-VM
data structure. This will have extra overhead, since for each distinct VM
we'll have todo a test launch of QEMU, but VM creation is not a performance
bottleneck so I don't think its an issue.
Here is an updated patch which makes the version/flags detection per-VM
in the qemu driver. We still cache the data, but invalidate it whenever
the VM's config is changed.
Tested with KVM when a differeing QEMU version is installed, and when no QEMU
is installed at all & both scenarios now work correctly.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|