From: pradeep <psuriset@linux.vnet.ibm.com>
To: sudhir kumar <smalikphy@gmail.com>
Cc: autotest@test.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH] KVM test: Memory ballooning test for KVM guest
Date: Mon, 12 Apr 2010 16:33:38 +0530 [thread overview]
Message-ID: <4BC2FE0A.6050103@linux.vnet.ibm.com> (raw)
In-Reply-To: <z2wa50cf5ab1004090413w65887ab5ve77d4c657e000b84@mail.gmail.com>
sudhir kumar wrote:
> On Fri, Apr 9, 2010 at 2:40 PM, pradeep <psuriset@linux.vnet.ibm.com> wrote:
>
>> Hi Lucas
>>
>> Thanks for your comments.
>> Please find the patch, with suggested changes.
>>
>> Thanks
>> Pradeep
>>
>>
>>
>> Signed-off-by: Pradeep Kumar Surisetty <psuriset@linux.vnet.ibm.com>
>> ---
>> 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
>>
>>
>>
>
>
>
>
next prev parent reply other threads:[~2010-04-12 11:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-11 17:29 [PATCH] KVM test: Memory ballooning test for KVM guest pradeep
2010-02-11 18:37 ` Lucas Meneghel Rodrigues
2010-04-09 9:10 ` [Autotest] " pradeep
2010-04-09 11:13 ` sudhir kumar
2010-04-12 11:03 ` pradeep [this message]
2010-04-13 4:24 ` [Autotest] " pradeep
2010-04-13 20:53 ` Lucas Meneghel Rodrigues
2010-04-15 0:12 ` Lucas Meneghel Rodrigues
2010-04-15 15:10 ` pradeep
2010-04-15 20:19 ` Lucas Meneghel Rodrigues
2010-04-16 5:01 ` pradeep
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BC2FE0A.6050103@linux.vnet.ibm.com \
--to=psuriset@linux.vnet.ibm.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=smalikphy@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox