From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: Feng Yang <fyang@redhat.com>
Cc: autotest@test.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH 3/3] KVM Test: Add ioquit test case
Date: Thu, 6 May 2010 20:32:33 -0300 [thread overview]
Message-ID: <h2k6ac58f4f1005061632l28bd917exa5ad9229a50ce3b8@mail.gmail.com> (raw)
In-Reply-To: <1270630156-9904-3-git-send-email-fyang@redhat.com>
On Wed, Apr 7, 2010 at 5:49 AM, Feng Yang <fyang@redhat.com> wrote:
> Signed-off-by: Feng Yang <fyang@redhat.com>
> ---
> client/tests/kvm/tests/ioquit.py | 54 ++++++++++++++++++++++++++++++++
> client/tests/kvm/tests_base.cfg.sample | 4 ++
> 2 files changed, 58 insertions(+), 0 deletions(-)
> create mode 100644 client/tests/kvm/tests/ioquit.py
>
> diff --git a/client/tests/kvm/tests/ioquit.py b/client/tests/kvm/tests/ioquit.py
> new file mode 100644
> index 0000000..c75a0e3
> --- /dev/null
> +++ b/client/tests/kvm/tests/ioquit.py
> @@ -0,0 +1,54 @@
> +import logging, time, random, signal, os
> +from autotest_lib.client.common_lib import error
> +import kvm_test_utils, kvm_utils
> +
> +
> +def run_ioquit(test, params, env):
> + """
> + Emulate the poweroff under IO workload(dbench so far) using monitor
> + command 'quit'.
> +
> + @param test: Kvm test object
> + @param params: Dictionary with the test parameters.
> + @param env: Dictionary with test environment.
> + """
Hi Feng, after reading your test I *think* I got the idea. You want to
put some heavy load on the system, quit the VM through a monitor
command and then we pray for it to not segfault during the process.
However:
1) Using autotest in the background to generate the high load
certainly seems overkill. I'd say to use a rather standard shell one
liner to generate the load, put it to run in background, and that is
it.
2) In no moment this test actually issues a 'quit' through monitor
3) When sending 'quit' is implemented, then if the VM segfaults the
crash handler will pick up the core dump
So, please simplify the test removing the function that forks autotest
and runs it on background, actually send quit through the monitor,
give it a good round of testing and then send it again. I am still not
100% convinced of the usefulness of the test, but it's worth a try.
> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> + session = kvm_test_utils.wait_for_login(vm,
> + timeout=int(params.get("login_timeout", 360)))
> + session2 = kvm_test_utils.wait_for_login(vm,
> + timeout=int(params.get("login_timeout", 360)))
> + def is_autotest_launched():
> + if session.get_command_status("pgrep autotest") != 0:
> + logging.debug("Autotest process not found")
> + return False
> + return True
> +
> + test_name = params.get("background_test", "dbench")
> + control_file = params.get("control_file", "dbench.control")
> + timeout = int(params.get("test_timeout", 300))
> + control_path = os.path.join(test.bindir, "autotest_control",
> + control_file)
> + outputdir = test.outputdir
> +
> + pid = kvm_test_utils.run_autotest_background(vm, session2, control_path,
> + timeout, test_name,
> + outputdir)
> + if pid < 0:
> + raise error.TestError("Could not create child process to execute "
> + "autotest background")
> +
> + if kvm_utils.wait_for(is_autotest_launched, 240, 0, 2):
> + logging.debug("Background autotest successfully")
> + else:
> + logging.debug("Background autotest failed, start the test anyway")
> +
> + time.sleep(100 + random.randrange(0,100))
> + logging.info("Kill the virtual machine")
> + vm.process.close()
> +
> + logging.info("Kill the tracking process")
> + kvm_utils.safe_kill(pid, signal.SIGKILL)
> + kvm_test_utils.wait_autotest_background(pid)
> + session.close()
> + session2.close()
> +
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index 9b12fc2..d8530f6 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -305,6 +305,10 @@ variants:
> - ksm_parallel:
> ksm_mode = "parallel"
>
> + - ioquit:
> + type = ioquit
> + control_file = dbench.control.200
> + background_test = dbench
> # system_powerdown, system_reset and shutdown *must* be the last ones
> # defined (in this order), since the effect of such tests can leave
> # the VM on a bad state.
> --
> 1.5.5.6
>
> _______________________________________________
> Autotest mailing list
> Autotest@test.kernel.org
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
--
Lucas
next prev parent reply other threads:[~2010-05-06 23:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-07 8:49 [PATCH 1/3] KVM Test: Add control file dbench.control.200 for dbench Feng Yang
2010-04-07 8:49 ` [PATCH 2/3] KVM Test: Add function run_autotest_background and wait_autotest_background Feng Yang
2010-04-07 8:49 ` [PATCH 3/3] KVM Test: Add ioquit test case Feng Yang
2010-04-08 14:36 ` Michael Goldish
2010-05-06 23:27 ` Lucas Meneghel Rodrigues
2010-05-06 23:32 ` Lucas Meneghel Rodrigues [this message]
2010-04-08 14:18 ` [PATCH 2/3] KVM Test: Add function run_autotest_background and wait_autotest_background Michael Goldish
[not found] <1224281688.193301273198204980.JavaMail.root@zmail04.collab.prod.int.phx2.redhat.com>
2010-05-07 2:15 ` [PATCH 3/3] KVM Test: Add ioquit test case Feng Yang
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=h2k6ac58f4f1005061632l28bd917exa5ad9229a50ce3b8@mail.gmail.com \
--to=lmr@redhat.com \
--cc=autotest@test.kernel.org \
--cc=fyang@redhat.com \
--cc=kvm@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).