On Fri, 2009-08-07 at 13:02 +0100, Daniel P. Berrange wrote:
> On Fri, Aug 07, 2009 at 01:57:34PM +0200, Chris Lalancette wrote:
> > Anton Protopopov wrote:
> > > Hi.
> > > 
> > > Libvirt tryes to extract kvm version from the string
> > >   "QEMU PC emulator version <major>.<minor>.<micro> (kvm-<version>)..."
> > > For examle,
> > >   # kvm -help | head -1
> > >   QEMU PC emulator version 0.10.0 (kvm-85), Copyright (c) 2003-2008
> > > Fabrice Bellard
> > > 
> > > The problem occures if you are trying to run it on the devel version of 
> > > kvm:
> > >   # kvm -help | head -1
> > >   QEMU PC emulator version 0.10.0 (kvm-devel), Copyright (c) 2003-2008
> > > Fabrice Bellard
> > > The virParseNumber() obvioulsy fails on the "devel" string here. I
> > > propose to setup
> > > `kvm_version' to 1000 (that's enough, I think) in that case, so all
> > > checks, such as
> > >   if (kvm_version > 74) ...
> > > will pass.
> > 
> > Yeah, I've run into this too.  The problem with just setting kvm_version to 
> > a
> > huge number is that if you built a kvm development snapshot a long time in 
> > the
> > past, and you run it now, then you will be turning on features your old
> > development snapshot didn't necessarily have.  On the other hand, if you are
> > running development snapshots, you get to keep both pieces when things 
> > break.
> > Maybe we can set the kvm_version number very high like you say, but also 
> > dump a
> > warning message out to the logfile saying this is a development version so 
> > the
> > poor sap who has to debug something like this has a fighting chance.  Any 
> > other
> > opinions?
> 
> Fix kvm to include a relevant version number instead of just the 'devel'
> 
> eg, Instead of
> 
>    QEMU PC emulator version 0.10.0 (kvm-devel), Copyright (c) 2003-2008
> 
> have
> 
>    QEMU PC emulator version 0.10.0 (kvm-85-devel), Copyright (c) 2003-2008
> 
> So that its clear this development release, is the one immediately
> following on from the kvm-85 stable release. That would let us 
> automatically enable the features upto & including kvm-85 which
> would at least make it functional, albeit without letting us use
> the new features.

kvm_version shouldn't be needed for newer versions of qemu-kvm - we
should just use the qemu version to detect new features.

i.e. we only need to be able to parse kvm_version for older releases;
for newer releases we just need to be able to detect the qemu version
and whether it's upstream qemu or the kvm fork of qemu.

That's why we do:

    if (STRPREFIX(p, QEMU_KVM_VER_PREFIX)) {
        *is_kvm = 1;
        p += strlen(QEMU_KVM_VER_PREFIX);
    }

we don't actually parse the number because, for kvm-86 an later, we
don't actually care about the kvm version number.

I've just sent a patch to k...@vger to change the default version string
from 'kvm-devel' to 'qemu-kvm-devel'. That's enough to fix the problem
for us.

Cheers,
Mark.

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to