Re: [Autotest] [PATCH] KVM test: Memory ballooning test for KVM guest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 9, 2010 at 2:40 PM, pradeep <psuriset@xxxxxxxxxxxxxxxxxx> wrote:
>
> Hi Lucas
>
> Thanks for your comments.
> Please find the patch, with suggested changes.
>
> Thanks
> Pradeep
>
>
>
> Signed-off-by: Pradeep Kumar Surisetty <psuriset@xxxxxxxxxxxxxxxxxx>
> ---
> 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.

> +    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.

> +    time.sleep(20)
why 20 second sleep and why the magic number?

> +    status, output = vm.send_monitor_cmd("info balloon")
You might want to put this check before changing the memory.

> +    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"

> +    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@xxxxxxxxxxxxxxx
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
>



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

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux