From: pradeep <psuriset@linux.vnet.ibm.com>
To: Lucas Meneghel Rodrigues <lmr@redhat.com>
Cc: autotest@test.kernel.org, kvm@vger.kernel.org
Subject: Re: [Autotest] [PATCH] KVM test: Memory ballooning test for KVM guest
Date: Tue, 13 Apr 2010 09:54:36 +0530 [thread overview]
Message-ID: <4BC3F204.4010304@linux.vnet.ibm.com> (raw)
In-Reply-To: <4BC2FE0A.6050103@linux.vnet.ibm.com>
Lucas
Any comments??
--sp
pradeep wrote:
> 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
>>>
>>>
>>>
>>>
>>
>>
>>
>
> _______________________________________________
> Autotest mailing list
> Autotest@test.kernel.org
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
next prev parent reply other threads:[~2010-04-13 4:24 UTC|newest]
Thread overview: 12+ 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
2010-04-13 4:24 ` pradeep [this message]
2010-04-13 20:53 ` [Autotest] " 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
-- strict thread matches above, loose matches on Subject: below --
2010-02-11 16:16 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=4BC3F204.4010304@linux.vnet.ibm.com \
--to=psuriset@linux.vnet.ibm.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=lmr@redhat.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