Re: [Autotest] [PATCH 1/3] KVM test: Use customized command to get the version of kvm and its
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
- 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
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