[libvirt][PATCH] running libvirt on the latest kvm snapshot
Mark McLoughlin
markmc at redhat.com
Mon Aug 10 09:41:36 UTC 2009
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 kvm at 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.
More information about the libvir-list
mailing list