From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: autotest@test.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC PATCH 12/14] KVM-test: Add a subtest of netperf
Date: Fri, 30 Jul 2010 13:32:11 -0300 [thread overview]
Message-ID: <1280507531.2492.11.camel@freedom> (raw)
In-Reply-To: <20100720013632.2212.40372.stgit@z>
On Tue, 2010-07-20 at 09:36 +0800, Amos Kong wrote:
> Add network load by netperf, server is launched on guest, execute netperf
> client with different protocols on host. if all clients execute successfully,
> case will be pass. Test result will be record into result.txt.
> Now this case only tests with "TCP_RR TCP_CRR UDP_RR TCP_STREAM TCP_MAERTS
> TCP_SENDFILE UDP_STREAM". DLPI only supported by Unix, unix domain test is
> not necessary, so drop test of DLPI and unix domain.
Some general thoughts about this test:
* netperf2 has a fairly good wrapper code, that can do postprocessing
of the results. It'd be good to make use of it. What I was thinking:
- Import the netperf2 wrapper class on host and call run_once with
appropriate parameters on host
- Create a client control file and run it on guest using
kvm_test_utils.run_autotest()
- As this approach wouldn't work on windows, we could make a
netperf_windows test that would be very much like this test.
Of course, we could do that on a later time, I don't think it is
something urgent anyway.
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
> 0 files changed, 0 insertions(+), 0 deletions(-)
>
> diff --git a/client/tests/kvm/tests/netperf.py b/client/tests/kvm/tests/netperf.py
> new file mode 100644
> index 0000000..00a91f0
> --- /dev/null
> +++ b/client/tests/kvm/tests/netperf.py
> @@ -0,0 +1,56 @@
> +import logging, commands, os
> +from autotest_lib.client.common_lib import error
> +import kvm_subprocess, kvm_test_utils, kvm_utils
> +
> +def run_netperf(test, params, env):
> + """
> + Network stress test with netperf
> +
> + 1) Boot up a virtual machine
> + 2) Launch netserver on guest
> + 3) Execute netperf client on host with different protocols
> + 4) Outout the test result
> +
> + @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,
> + timeout=int(params.get("login_timeout", 360)))
> + netperf_dir = os.path.join(os.environ['AUTODIR'], "tests/netperf2")
> + setup_cmd = params.get("setup_cmd")
> + guest_ip = vm.get_address()
> + result_file = os.path.join(test.debugdir, "result.txt")
^ test.resultsdir would be better. Also, it's better if we take into
account the fact that we can have more than one iteration of the test,
so we'd have something like:
self.results_path = os.path.join(self.resultsdir, 'raw_output_%s' %self.iteration)
Which is what we are doing currently for other benchmarks.
> + session.get_command_output("service iptables stop")
^ Again I think it'd be better to simply flush the firewall rules with
iptables -F because that's more likely to work on different linux
guests.
Also, this linux specific command makes the entire test linux specific,
so we have to put a rule telling the kvm autotest to not run it on
windows guests.
> + for i in params.get("netperf_files").split():
> + if not vm.copy_files_to(os.path.join(netperf_dir, i), "/tmp"):
> + raise error.TestError("Could not copy files to guest")
> + if session.get_command_status(setup_cmd % "/tmp", timeout=100) != 0:
> + raise error.TestFail("Fail to setup netperf on guest")
> + if session.get_command_status(params.get("netserver_cmd") % "/tmp") != 0:
> + raise error.TestFail("Fail to start netperf server on guest")
> +
> + try:
> + logging.info("Setup and run netperf client on host")
> + s, o = commands.getstatusoutput(setup_cmd % netperf_dir)
> + if s != 0:
> + raise error.TestFail("Fail to setup netperf on host, o: %s" % o)
> + success = True
> + file(result_file, "w").write("Netperf Test Result\n")
> + for i in params.get("protocols").split():
> + cmd = params.get("netperf_cmd") % (netperf_dir, i, guest_ip)
> + logging.debug("Execute netperf client test: %s" % cmd)
> + s, o = commands.getstatusoutput(cmd)
> + if s != 0:
> + logging.error("Fail to execute netperf test, protocol:%s" % i)
> + success = False
> + else:
> + logging.info(o)
> + file(result_file, "a+").write("%s\n" % o)
> + if not success:
> + raise error.TestFail("Not all the test passed")
^ "Some of the netperf tests failed"
> + finally:
> + session.get_command_output("killall netserver")
> + session.close()
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index 7716d48..dec988e 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -398,6 +398,16 @@ variants:
> type = mac_change
> kill_vm = yes
>
> + - netperf: install setup unattended_install.cdrom
> + type = netperf
> + nic_mode = tap
> + netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
> + setup_cmd = "cd %s && tar xvfj netperf-2.4.5.tar.bz2 && cd netperf-2.4.5 && patch -p0 < ../wait_before_data.patch && ./configure && make"
> + netserver_cmd = %s/netperf-2.4.5/src/netserver
> + # test time is 60 seconds, set the buffer size to 1 for more hardware interrupt
> + netperf_cmd = %s/netperf-2.4.5/src/netperf -t %s -H %s -l 60 -- -m 1
> + protocols = "TCP_STREAM TCP_MAERTS TCP_RR TCP_CRR UDP_RR TCP_SENDFILE UDP_STREAM"
> +
> - physical_resources_check: install setup unattended_install.cdrom
> type = physical_resources_check
> catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
>
>
next prev parent reply other threads:[~2010-07-30 16:32 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-20 1:34 [Qemu-devel] [Autotest][RFC PATCH 00/14] Patchset of network related subtests Amos Kong
2010-07-20 1:34 ` [Qemu-devel] [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm Amos Kong
2010-07-20 10:19 ` Michael Goldish
2010-07-20 13:44 ` Amos Kong
2010-07-20 15:53 ` Michael Goldish
2010-08-03 1:34 ` Amos Kong
2010-07-27 1:48 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py Amos Kong
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-28 10:29 ` Michael Goldish
2010-08-03 1:39 ` Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 03/14] KVM Test: Add a common ping module for network related tests Amos Kong
2010-07-27 13:01 ` Lucas Meneghel Rodrigues
2010-07-28 11:50 ` Michael Goldish
2010-07-28 13:56 ` Michael Goldish
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 04/14] KVM-test: Add a new subtest ping Amos Kong
2010-07-27 13:15 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-03 1:54 ` Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 05/14] KVM-test: Add a subtest jumbo Amos Kong
2010-07-27 14:13 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:18 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 06/14] KVM-test: Add basic file transfer test Amos Kong
2010-07-27 14:36 ` Lucas Meneghel Rodrigues
2010-08-10 9:29 ` [Autotest] " Amos Kong
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver Amos Kong
2010-07-28 18:12 ` Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [Qemu-devel] [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc Amos Kong
2010-07-28 21:35 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-11 1:34 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 09/14] KVM-test: Add a subtest of multicast Amos Kong
2010-07-28 21:55 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 10/14] KVM-test: Add a subtest of pxe Amos Kong
2010-07-28 22:07 ` Lucas Meneghel Rodrigues
2010-08-10 6:11 ` Amos Kong
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address Amos Kong
2010-07-28 22:30 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 12/14] KVM-test: Add a subtest of netperf Amos Kong
2010-07-30 16:32 ` Lucas Meneghel Rodrigues [this message]
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 13/14] KVM-test: Improve vlan subtest Amos Kong
2010-07-20 1:36 ` [Qemu-devel] [RFC PATCH 14/14] KVM-test: Add subtest of testing offload by ethtool Amos Kong
2010-08-02 19:10 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:07 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 12:12 ` [Qemu-devel] Re: [Autotest][RFC PATCH 00/14] Patchset of network related subtests Lucas Meneghel Rodrigues
2010-08-02 20:58 ` Lucas Meneghel Rodrigues
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=1280507531.2492.11.camel@freedom \
--to=lmr@redhat.com \
--cc=akong@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.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).