Hi, Lucas Thanks for your comment. I am sorry for no response so long time. I will update it according to your comment. Also thanks Michael for his comment. ----- "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> wrote: > From: "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> > To: "Feng Yang" <fyang@xxxxxxxxxx> > Cc: autotest@xxxxxxxxxxxxxxx, kvm@xxxxxxxxxxxxxxx > Sent: Friday, May 7, 2010 7:32:33 AM GMT +08:00 Beijing / Chongqing / Hong Kong / Urumqi > Subject: Re: [Autotest] [PATCH 3/3] KVM Test: Add ioquit test case > > On Wed, Apr 7, 2010 at 5:49 AM, Feng Yang <fyang@xxxxxxxxxx> wrote: > > Signed-off-by: Feng Yang <fyang@xxxxxxxxxx> > > --- > > 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@xxxxxxxxxxxxxxx > > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest > > > > > > -- > Lucas > -- > 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 -- 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