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: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-20 1:34 [RFC PATCH 00/14] Patchset of network related subtests Amos Kong
2010-07-20 1:34 ` [Qemu-devel] [Autotest][RFC " Amos Kong
2010-07-20 1:34 ` [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm Amos Kong
2010-07-20 1:34 ` [Qemu-devel] " Amos Kong
2010-07-20 10:19 ` Michael Goldish
2010-07-20 10:19 ` Michael Goldish
2010-07-20 13:44 ` Amos Kong
2010-07-20 15:53 ` Michael Goldish
2010-07-20 15:53 ` Michael Goldish
2010-08-03 1:34 ` Amos Kong
2010-07-27 1:48 ` Lucas Meneghel Rodrigues
2010-07-27 1:48 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-28 10:29 ` Michael Goldish
2010-07-28 10:29 ` Michael Goldish
2010-08-03 1:39 ` Amos Kong
2010-07-20 1:35 ` [RFC PATCH 03/14] KVM Test: Add a common ping module for network related tests Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " 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-28 13:56 ` Michael Goldish
2010-07-20 1:35 ` [RFC PATCH 04/14] KVM-test: Add a new subtest ping Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 13:15 ` Lucas Meneghel Rodrigues
2010-07-27 13:15 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-03 1:54 ` Amos Kong
2010-08-03 1:54 ` [Qemu-devel] " Amos Kong
2010-07-20 1:35 ` [RFC PATCH 05/14] KVM-test: Add a subtest jumbo Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 14:13 ` Lucas Meneghel Rodrigues
2010-07-27 14:13 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:18 ` Amos Kong
2010-08-10 7:18 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:35 ` [RFC PATCH 06/14] KVM-test: Add basic file transfer test Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 14:36 ` Lucas Meneghel Rodrigues
2010-08-10 9:29 ` [Autotest] " Amos Kong
2010-08-10 9:29 ` Amos Kong
2010-07-20 1:35 ` [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-28 18:12 ` Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-28 21:35 ` Lucas Meneghel Rodrigues
2010-07-28 21:35 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-11 1:34 ` [Autotest] " Amos Kong
2010-08-11 1:34 ` [Qemu-devel] " Amos Kong
2010-07-20 1:36 ` [RFC PATCH 09/14] KVM-test: Add a subtest of multicast Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 21:55 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 10/14] KVM-test: Add a subtest of pxe Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 22:07 ` Lucas Meneghel Rodrigues
2010-08-10 6:11 ` Amos Kong
2010-07-20 1:36 ` [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 22:30 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 12/14] KVM-test: Add a subtest of netperf Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-30 16:32 ` Lucas Meneghel Rodrigues [this message]
2010-07-20 1:36 ` [RFC PATCH 13/14] KVM-test: Improve vlan subtest Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-20 1:36 ` [RFC PATCH 14/14] KVM-test: Add subtest of testing offload by ethtool Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-08-02 19:10 ` Lucas Meneghel Rodrigues
2010-08-02 19:10 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:07 ` Amos Kong
2010-08-10 7:07 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 12:12 ` [RFC PATCH 00/14] Patchset of network related subtests Lucas Meneghel Rodrigues
2010-07-20 12:12 ` [Qemu-devel] Re: [Autotest][RFC " Lucas Meneghel Rodrigues
2010-08-02 20:58 ` [RFC " Lucas Meneghel Rodrigues
2010-08-02 20:58 ` [Qemu-devel] Re: [Autotest][RFC " 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.