Re: [Autotest] [PATCH 1/3] KVM test: Use customized command to get the version of kvm and its

2010-05-07 Thread Lucas Meneghel Rodrigues
On Fri, 2010-05-07 at 18:10 +0800, Jason Wang wrote:
 Lucas Meneghel Rodrigues wrote:
  On Mon, Apr 26, 2010 at 7:07 AM, Jason Wang jasow...@redhat.com wrote:

  userspace
 
  Current method may or may not work for various kinds of
  distribution. So this patch enable the ability to use customized
  commands to get the version of kvm and its userspace. kvm_ver_cmd is
  used for kvm verison and kvm_userspace_ver_cmd is for its userspace.
  
 
  The method we are currently using is pretty satisfactory - if we fail
  in getting /sys/module/kvm/version we use the kernel version as a
  fallback, which is good for the kernel module. For qemu, we make a
  regular expression searching for numbers following the string version,
  so I don't see a reason on why we should make it configurable. Care to
  provide an example of a situation where the current method fails?
 

 Current method may be not as accurate as we expected.
 In my Fedora box, the output of qemu-kvm -h | head -n 1 is something like:
 QEMU PC emulator version 0.9.1 (kvm-83-maint-snapshot-20090205), 
 Copyright (c) 2003-2008 Fabrice Bellard
 but the rpm -qa may tell more accurate version:
 qemu-kvm-0.11.0-13.fc12.x86_64

The above version of qemu looks like the one shipped in RHEL 5.X, not
Fedora, you might have mistaken the versions. Here is what it looks on:

Fedora 11:

[r...@localhost ~]# qemu-kvm -help | head -1
QEMU PC emulator version 0.11.0 (qemu-kvm-0.11.0), Copyright (c) 2003-2008 
Fabrice Bellard
[r...@localhost ~]# rpm -qa | grep qemu-kvm
qemu-kvm-0.11.0-13.fc12.x86_64

Fedora 13:

[...@freedom ~]$ qemu-kvm -h | head -1
QEMU PC emulator version 0.12.3 (qemu-kvm-0.12.3), Copyright (c) 2003-2008 
Fabrice Bellard
[...@freedom ~]$ rpm -qa | grep qemu-kvm
qemu-kvm-0.12.3-8.fc13.x86_64

Moreover, we deal with several build methods, qemu-kvm might have not be
installed through rpm, so we have to use a single method to figure out
the versions. Another point is that, if we run such alternate methods
(such as git build, or brew build) we will have reliable versioning that
can be extracted from the build logs.

My decision is we keep the current method of determining the version.
The current method we have is fairly reliable (though obviously not
perfect) in my opinion, and it can be applied pretty much for all
branches.

I would really like that we start embedding version control (git)
information somewhere installing binaries, to make things easier for
people bisecting issues, but not sure what the maintainers would think
about this.


--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Autotest] [PATCH 1/3] KVM test: Use customized command to get the version of kvm and its

2010-05-07 Thread Jason Wang

- Lucas Meneghel Rodrigues l...@redhat.com wrote:

 On Fri, 2010-05-07 at 18:10 +0800, Jason Wang wrote:
  Lucas Meneghel Rodrigues wrote:
   On Mon, Apr 26, 2010 at 7:07 AM, Jason Wang jasow...@redhat.com
 wrote:
 
   userspace
  
   Current method may or may not work for various kinds of
   distribution. So this patch enable the ability to use customized
   commands to get the version of kvm and its userspace.
 kvm_ver_cmd is
   used for kvm verison and kvm_userspace_ver_cmd is for its
 userspace.
   
  
   The method we are currently using is pretty satisfactory - if we
 fail
   in getting /sys/module/kvm/version we use the kernel version as a
   fallback, which is good for the kernel module. For qemu, we make
 a
   regular expression searching for numbers following the string
 version,
   so I don't see a reason on why we should make it configurable.
 Care to
   provide an example of a situation where the current method fails?
  
 
  Current method may be not as accurate as we expected.
  In my Fedora box, the output of qemu-kvm -h | head -n 1 is something
 like:
  QEMU PC emulator version 0.9.1 (kvm-83-maint-snapshot-20090205), 
  Copyright (c) 2003-2008 Fabrice Bellard
  but the rpm -qa may tell more accurate version:
  qemu-kvm-0.11.0-13.fc12.x86_64
 
 The above version of qemu looks like the one shipped in RHEL 5.X, not
 Fedora, you might have mistaken the versions. Here is what it looks
 on:
 
 Fedora 11:
 
 [r...@localhost ~]# qemu-kvm -help | head -1
 QEMU PC emulator version 0.11.0 (qemu-kvm-0.11.0), Copyright (c)
 2003-2008 Fabrice Bellard
 [r...@localhost ~]# rpm -qa | grep qemu-kvm
 qemu-kvm-0.11.0-13.fc12.x86_64
 
 Fedora 13:
 
 [...@freedom ~]$ qemu-kvm -h | head -1
 QEMU PC emulator version 0.12.3 (qemu-kvm-0.12.3), Copyright (c)
 2003-2008 Fabrice Bellard
 [...@freedom ~]$ rpm -qa | grep qemu-kvm
 qemu-kvm-0.12.3-8.fc13.x86_64
 
 Moreover, we deal with several build methods, qemu-kvm might have not
 be
 installed through rpm, so we have to use a single method to figure
 out
 the versions. Another point is that, if we run such alternate methods
 (such as git build, or brew build) we will have reliable versioning
 that
 can be extracted from the build logs.
 
 My decision is we keep the current method of determining the version.
 The current method we have is fairly reliable (though obviously not
 perfect) in my opinion, and it can be applied pretty much for all
 branches.
 
 I would really like that we start embedding version control (git)
 information somewhere installing binaries, to make things easier for
 people bisecting issues, but not sure what the maintainers would
 think
 about this.
 
Thanks for the detailed explanation here, I think I've missed the possibility 
of building form source.
I agree that we keep the current method.
 
 --
 To unsubscribe from this list: send the line unsubscribe kvm in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Autotest] [PATCH 1/3] KVM test: Use customized command to get the version of kvm and its

2010-05-06 Thread Lucas Meneghel Rodrigues
On Mon, Apr 26, 2010 at 7:07 AM, Jason Wang jasow...@redhat.com wrote:
 userspace

 Current method may or may not work for various kinds of
 distribution. So this patch enable the ability to use customized
 commands to get the version of kvm and its userspace. kvm_ver_cmd is
 used for kvm verison and kvm_userspace_ver_cmd is for its userspace.

The method we are currently using is pretty satisfactory - if we fail
in getting /sys/module/kvm/version we use the kernel version as a
fallback, which is good for the kernel module. For qemu, we make a
regular expression searching for numbers following the string version,
so I don't see a reason on why we should make it configurable. Care to
provide an example of a situation where the current method fails?

 Signed-off-by: Jason Wang jasow...@redhat.com
 ---
  client/tests/kvm/kvm_preprocessing.py |   18 +-
  1 files changed, 9 insertions(+), 9 deletions(-)

 diff --git a/client/tests/kvm/kvm_preprocessing.py 
 b/client/tests/kvm/kvm_preprocessing.py
 index 4b9290c..16200ab 100644
 --- a/client/tests/kvm/kvm_preprocessing.py
 +++ b/client/tests/kvm/kvm_preprocessing.py
 @@ -225,10 +225,10 @@ def preprocess(test, params, env):
     # Get the KVM kernel module version and write it as a keyval
     logging.debug(Fetching KVM module version...)
     if os.path.exists(/dev/kvm):
 -        try:
 -            kvm_version = open(/sys/module/kvm/version).read().strip()
 -        except:
 -            kvm_version = os.uname()[2]
 +        kvm_ver_cmd = params.get(kvm_ver_cmd, cat 
 /sys/module/kvm/version)
 +        s, kvm_version = commands.getstatusoutput(kvm_ver_cmd)
 +        if s != 0:
 +            kvm_version = Unknown
     else:
         kvm_version = Unknown
         logging.debug(KVM module not loaded)
 @@ -239,11 +239,11 @@ def preprocess(test, params, env):
     logging.debug(Fetching KVM userspace version...)
     qemu_path = kvm_utils.get_path(test.bindir, params.get(qemu_binary,
                                                            qemu))
 -    version_line = commands.getoutput(%s -help | head -n 1 % qemu_path)
 -    matches = re.findall([Vv]ersion .*?,, version_line)
 -    if matches:
 -        kvm_userspace_version =  .join(matches[0].split()[1:]).strip(,)
 -    else:
 +    def_qemu_ver_cmd = %s -help | head -n 1 | awk '{ print $5}' % qemu_path
 +    kvm_userspace_ver_cmd = params.get(kvm_userspace_ver_cmd,
 +                                       def_qemu_ver_cmd)
 +    s, kvm_userspace_version = 
 commands.getstatusoutput(kvm_userspace_ver_cmd)
 +    if s != 0:
         kvm_userspace_version = Unknown
         logging.debug(Could not fetch KVM userspace version)
     logging.debug(KVM userspace version: %s % kvm_userspace_version)

 ___
 Autotest mailing list
 autot...@test.kernel.org
 http://test.kernel.org/cgi-bin/mailman/listinfo/autotest




-- 
Lucas
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html