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

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

 



On Thu, 2010-04-15 at 20:40 +0530, pradeep wrote:
> Hi Lucas
> 
> Please ignore my earlier patch
> Find the correct patch with the suggested changes.

Hi Pradeep, I was reading the test once again while trying it myself,
some other ideas came to me. I spent some time hacking the test and sent
an updated patch with changes. Please let me know what you think, if you
are OK with them I'll commit it.

> 
> --SP
> 
> 
> plain text document attachment (patch)
> diff -purN autotest/client/tests/kvm/tests/balloon_check.py autotest-new/client/tests/kvm/tests/balloon_check.py
> --- autotest/client/tests/kvm/tests/balloon_check.py	1969-12-31 19:00:00.000000000 -0500
> +++ autotest-new/client/tests/kvm/tests/balloon_check.py	2010-04-15 18:50:09.000000000 -0400
> @@ -0,0 +1,51 @@
> +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) Change the memory between 60% to 95% of memory of guest using ballooning 
> +    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)
> +    
> +    
> +    #Check if info balloon works or not.
> +    status, output = vm.send_monitor_cmd("info balloon")
> +    if status != 0:
> +        logging.error("qemu monitor command failed: info balloon")
> +        fail += 1
> + 
> +    #Reduce memory to random size between 60% to 95% of actual memory
> +    percent = random.uniform(0.6, 0.95)
> +    new_mem = int(percent*actual_mem)
> +    vm.send_monitor_cmd("balloon %s" % new_mem)
> +    time.sleep(20)
> +    status, output = vm.send_monitor_cmd("info balloon")
> +    ballooned_mem = int(re.findall("\d+",output)[0])
> +    if ballooned_mem != new_mem:
> +        logging.error("memory ballooning failed while changing memory from %s to %s" %actual_mem %new_mem)  
> +        fail += 1
> +    
> +    #Checking for test result
> +    if fail != 0:
> +        raise error.TestFail("Memory ballooning test failed ")
> +    session.close()
> diff -purN autotest/client/tests/kvm/tests_base.cfg.sample autotest-new/client/tests/kvm/tests_base.cfg.sample
> --- autotest/client/tests/kvm/tests_base.cfg.sample	2010-04-15 09:14:10.000000000 -0400
> +++ autotest-new/client/tests/kvm/tests_base.cfg.sample	2010-04-15 18:50:35.000000000 -0400
> @@ -171,6 +171,10 @@ variants:
>                  drift_threshold = 10
>                  drift_threshold_single = 3
>  
> +    - balloon_check:  install setup unattended_install
> +        type = balloon_check
> +        extra_params += "-balloon virtio"
> +
>      - stress_boot:  install setup unattended_install
>          type = stress_boot
>          max_vms = 5    


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