Re: [Libvir] PATCH: Explicit detection of KVM version

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. 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 -=|

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 -=|
participants (1)
-
Daniel P. Berrange