From mboxrd@z Thu Jan 1 00:00:00 1970 From: pradeep Subject: Re: [Autotest] [PATCH] KVM test: Memory ballooning test for KVM guest Date: Tue, 13 Apr 2010 09:54:36 +0530 Message-ID: <4BC3F204.4010304@linux.vnet.ibm.com> References: <4B743E97.4040102@linux.vnet.ibm.com> <1265913451.2299.26.camel@localhost.localdomain> <4BBEEF05.5080809@linux.vnet.ibm.com> <4BC2FE0A.6050103@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: autotest@test.kernel.org, kvm@vger.kernel.org To: Lucas Meneghel Rodrigues Return-path: Received: from e9.ny.us.ibm.com ([32.97.182.139]:40191 "EHLO e9.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750817Ab0DMEYk (ORCPT ); Tue, 13 Apr 2010 00:24:40 -0400 Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e9.ny.us.ibm.com (8.14.3/8.13.1) with ESMTP id o3D4Cjda022017 for ; Tue, 13 Apr 2010 00:12:45 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o3D4OdY81790118 for ; Tue, 13 Apr 2010 00:24:39 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id o3D4OcQE024907 for ; Tue, 13 Apr 2010 00:24:39 -0400 In-Reply-To: <4BC2FE0A.6050103@linux.vnet.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: Lucas Any comments?? --sp pradeep wrote: > sudhir kumar wrote: > > >> On Fri, Apr 9, 2010 at 2:40 PM, pradeep wrote: >> >> >>> Hi Lucas >>> >>> Thanks for your comments. >>> Please find the patch, with suggested changes. >>> >>> Thanks >>> Pradeep >>> >>> >>> >>> Signed-off-by: Pradeep Kumar Surisetty >>> --- >>> diff -uprN autotest-old/client/tests/kvm/tests/balloon_check.py >>> autotest/client/tests/kvm/tests/balloon_check.py >>> --- autotest-old/client/tests/kvm/tests/balloon_check.py 1969-12-31 >>> 19:00:00.000000000 -0500 >>> +++ autotest/client/tests/kvm/tests/balloon_check.py 2010-04-09 >>> 12:33:34.000000000 -0400 >>> @@ -0,0 +1,47 @@ >>> +import re, string, logging, random, time >>> +from autotest_lib.client.common_lib import error >>> +import kvm_test_utils, kvm_utils >>> + >>> +def run_balloon_check(test, params, env): >>> + """ >>> + Check Memory ballooning: >>> + 1) Boot a guest >>> + 2) Increase and decrease the memory of guest using balloon command from >>> monitor >>> >>> >> Better replace this description by "Change the guest memory between X >> and Y values" >> Also instead of using 0.6 and 0.95 below, better use two variables and >> take their value from config file. This will give the user a >> flexibility to narrow or widen the ballooning range. >> >> > Thanks for your suggestions. I dont think, user should need flexibility > here. > If ballooning doest work for one set of value, it will not work for any > other. > And here, we are choosing between 60 to 95% of actual values, which is > reasonable. > > >> >> >>> + 3) check memory info >>> + >>> + @param test: kvm test object >>> + @param params: Dictionary with the test parameters >>> + @param env: Dictionary with test environment. >>> + """ >>> + >>> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm")) >>> + session = kvm_test_utils.wait_for_login(vm) >>> + fail = 0 >>> + >>> + # Check memory size >>> + logging.info("Memory size check") >>> + expected_mem = int(params.get("mem")) >>> + actual_mem = vm.get_memory_size() >>> + if actual_mem != expected_mem: >>> + logging.error("Memory size mismatch:") >>> + logging.error("Assigned to VM: %s" % expected_mem) >>> + logging.error("Reported by OS: %s" % actual_mem) >>> + >>> + #change memory to random size between 60% to 95% of actual memory >>> + percent = random.uniform(0.6, 0.95) >>> + new_mem = int(percent*expected_mem) >>> + vm.send_monitor_cmd("balloon %s" %new_mem) >>> >>> >> You may want to check if the command passed/failed. Older versions >> might not support ballooning. >> >> > > sure, i will make changes here. > >> >> >>> + time.sleep(20) >>> >>> >> why 20 second sleep and why the magic number? >> >> > As soon as balloon command is passed, it takes some time for memory > ballooing. > If we check "info balloon" as soon as we run ballooning, it will give > weird values. > I just choose it as, 20sec and its not huge time from testing perspective. > >> >> >>> + status, output = vm.send_monitor_cmd("info balloon") >>> >>> >> You might want to put this check before changing the memory. >> >> >> > sure, will make changes here too. > >>> + if status != 0: >>> + logging.error("qemu monitor command failed: info balloon") >>> + >>> + balloon_cmd_mem = int(re.findall("\d+",output)[0]) >>> >>> >> A better variable name I can think of is "ballooned_mem" >> >> > > will change it... > >> >> >>> + if balloon_cmd_mem != new_mem: >>> + logging.error("memory ballooning failed while changing memory to >>> %s" %balloon_cmd_mem) >>> + fail += 1 >>> + >>> + #Checking for test result >>> + if fail != 0: >>> >>> >> In case you are running multiple iterations and the 2nd iteration >> fails you will always miss this condition. >> >> > > >> >> >>> + raise error.TestFail("Memory ballooning test failed ") >>> + session.close() >>> diff -uprN autotest-old/client/tests/kvm/tests_base.cfg.sample >>> autotest/client/tests/kvm/tests_base.cfg.sample >>> --- autotest-old/client/tests/kvm/tests_base.cfg.sample 2010-04-09 >>> 12:32:50.000000000 -0400 >>> +++ autotest/client/tests/kvm/tests_base.cfg.sample 2010-04-09 >>> 12:53:27.000000000 -0400 >>> @@ -185,6 +185,10 @@ variants: >>> drift_threshold = 10 >>> drift_threshold_single = 3 >>> >>> + - balloon_check: install setup unattended_install boot >>> + type = balloon_check >>> + extra_params += " -balloon virtio" >>> + >>> - stress_boot: install setup unattended_install >>> type = stress_boot >>> max_vms = 5 >>> --- >>> >>> >> Rest all looks good!!!! >> >> >>> _______________________________________________ >>> Autotest mailing list >>> Autotest@test.kernel.org >>> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest >>> >>> >>> >>> >> >> >> > > _______________________________________________ > Autotest mailing list > Autotest@test.kernel.org > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest >