On Fri, Dec 14, 2012 at 03:31:15PM +0800, wenli wrote:
> On Fri 14 Dec 2012 03:16:07 PM CST, wenli wrote:
> >On Fri 14 Dec 2012 01:34:31 PM CST, Amos Kong wrote:
> >>On Wed, Dec 12, 2012 at 05:51:22PM +0800, wenli wrote:
> >>>On Wed 12 Dec 2012 05:35:14 PM CST, wenli wrote:
> >>>>On Wed 12 Dec 2012 05:19:48 PM CST, Yiqiao Pu wrote:
> >>>>>On 12/12/2012 04:16 PM, Amos Kong wrote:
> >>>>>>I already updated the netperf package to 2.6.0,
> >>>>>>this patch updated the config file and file path.
> >>>>>>
> >>>>>>wait_before_data.patch is no longer requested.
> >>>>>>
> >>>>>>Signed-off-by: Amos Kong<[email protected]>
> >>>>>>---
> >>>>>
> >>>>>Hi Amos,
> >>>>>
> >>>>>Seems the Windows guest netperf cases is useing 2.4.5 exe files
> >>>>>for the netperf_exe. So the performance tests for windows may
> >>>>>still using netperf 2.4.5 which may cause the results not
> >>>>>comparable with Linux results. So cc this change to wenli.
> >>
> >>Hi Yiqiao,
> >>
> >>I thought you use cygwin to compile and run netperf in Windows,
> >>and I only tested Linux guest.
> >>
> >>We can make it configurable, and still use 2.4.5 for Windows guests.
> >>Or update netperf program used for Windows guests.
> >>
> >>I'm working on the demo mode, it needs some change of netperf case.
> >>I will try to finish it with linux guest first.
> >>
> >>>>Akong,
> >>>>
> >>>>Did you try your patch before you send it out ?
> >>
> >>Sure.
> >>
> >>The following result is unstable, even uncorrect, but netperf-2.6 works
> >>with current parameters.
> >>
> >># cat
> >>../../results/default/virt.kvm.virtio_blk.smp2.virtio_net.RHEL.6.3.x86_64.netperf.host_guest/results/netperf-result.1355461197.02.RHS
> >>
> >>### kvm-userspace-ver : qemu-kvm-0.12.1.2-2.337.el6.x86_64
> >>### guest-kernel-ver : 2.6.32-262.el6.x86_64
> >>
> >>### kvm_version : 2.6.32-343.el6.x86_64
> >>### session-length : 50
> >>Category:TCP_STREAM (RX)
> >>size| sessions| throughput| CPU| thr_per_CPU| rx_pkts| tx_pkts|
> >>rx_byts| tx_byts| re_pkts| rx_intr| tx_intr| io_exit|
> >>irq_inj|tpkt_per_exit|rpkt_per_irq
> >>512| 4| 5392.59| 59.09| 91.26| 832495| 339588| 49657066176|
> >>22426890| 0| 330773| 5| 242963| 404617| 2.06| 1.40
> >>512| 16| 5507.38| 58.93| 93.46| 948749| 413731| 50095299758|
> >>28013684| 0| 348580| 348| 92530| 418111| 2.27| 4.47
> >>512| 64| 5919.49| 62.34| 94.95| 1111896| 884332| 45020654734|
> >>61852978| 0| 493078| 2323| 42263| 560081| 1.99| 20.92
> >>Category:TCP_MAERTS (TX)
> >>size| sessions| throughput| CPU| thr_per_CPU| rx_pkts| tx_pkts|
> >>rx_byts| tx_byts| re_pkts| rx_intr| tx_intr| io_exit|
> >>irq_inj|tpkt_per_exit|rpkt_per_irq
> >>512| 4| 6248.29| 66.25| 94.31| 3106493| 3436855| 204766536|
> >>57534865974| 0| 16808| 12865| 6392| 86463| 35.93| 537.68
> >>512| 16| 6698.82| 64.91| 103.20| 2033257| 2290066| 133839576|
> >>57816962454| 37| 4105| 4510| 20080| 81010| 25.10| 114.05
> >>512| 64| 7159.50| 59.30| 120.73| 969372| 1161921| 63548412|
> >>34647179394| 1081| 1611| 2106| 10245| 47184| 20.54| 113.41
> >>Category:TCP_RR
> >>size| sessions| trans.rate| CPU| thr_per_CPU| rx_pkts| tx_pkts|
> >>rx_byts| tx_byts| re_pkts| rx_intr| tx_intr| io_exit|
> >>irq_inj|tpkt_per_exit|rpkt_per_irq
> >>512| 32| 36867.86| 53.61| 687.70| 2711570| 2710621| 1566236464|
> >>1565794136| 0| 1020381| 41| 1051694| 1100593| 2.46| 2.58
> >>512| 128| 44619.06| 62.53| 713.56| 3097148| 3095450| 1788280186|
> >>1787460842| 0| 39050| 47| 32362| 119253| 25.97| 95.65
> >>
> >>
> >>>>netperf does not
> >>>>support "-t TCP_MAERTS -- -m $message" in 2.6.0 version.
> >>>>
> >>>Netperf could not work correctly with "TCP_MAERTS -- -m $message"
> >>>parameters, The bytes of "Send Message" already keep 16384 bytes no
> >>>matter what "-m " specify.
> >>
> >>[root@dhcp-8-167 virt]# /tmp/netperf-2.6.0/src/netperf -V
> >>Netperf version 2.6.0
> >>[root@dhcp-8-167 virt]# /tmp/netperf-2.6.0/src/netperf -D 1 -H
> >>192.168.58.23 -l 10 -C -c -t TCP_MAERTS -- -m 512 (this cmdline
> >>is got from Autotest log)
> >>MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET
> >>to 192.168.58.23 () port 0 AF_INET : demo
> >>Interim result: 5242.37 10^6bits/s over 1.143 seconds ending at
> >>1355463157.493
> >>Interim result: 4844.63 10^6bits/s over 1.082 seconds ending at
> >>1355463158.575
> >>Interim result: 5163.48 10^6bits/s over 1.001 seconds ending at
> >>1355463159.576
> >>Interim result: 5234.31 10^6bits/s over 1.001 seconds ending at
> >>1355463160.577
> >>Interim result: 5035.61 10^6bits/s over 1.040 seconds ending at
> >>1355463161.616
> >>Interim result: 5284.55 10^6bits/s over 1.002 seconds ending at
> >>1355463162.619
> >>Interim result: 5314.73 10^6bits/s over 1.000 seconds ending at
> >>1355463163.619
> >>Interim result: 5160.96 10^6bits/s over 1.030 seconds ending at
> >>1355463164.649
> >>Interim result: 5057.84 10^6bits/s over 1.020 seconds ending at
> >>1355463165.669
> >>Interim result: 5103.19 10^6bits/s over 0.681 seconds ending at
> >>1355463166.351
> >>Recv Send Send Utilization Service Demand
> >>Socket Socket Message Elapsed Recv Send Recv Send
> >>Size Size Size Time Throughput local remote local remote
> >>bytes bytes bytes secs. 10^6bits/s % S % S us/KB us/KB
> >>
> >>87380 16384 512 10.00 5143.63 62.02 33.24 3.951 1.059
> >>
> >>The result shows that "-t TCP_MAERTS -- -m 256" parameter works
> >>well with netperf-2.6.0
> >If you add "-c -c" parmaters in netperf , you can see the bytes of
> >"Send Message" changed to what "-m " specify, but actually the
> >bytes of "Send Message" is still 16384 bytes through strace
> >capture. so I think it's a netperf bug in 2.6.0 version.
> ># ./src/netperf -l 60 -H 192.168.100.16 -t TCP_MAERTS -C -c -- -m 32
Wenli, try this commandline:
# ./src/netperf -l 60 -H 192.168.100.16 -t TCP_MAERTS -C -c -- -m ,32
(output is right, you can trace right size in sendto())
# ./src/netperf -l 60 -H 192.168.100.16 -t TCP_MAERTS -- -m ,32
(output is wrong becauseof netperf output bug, but you can trace right size in
sendto())
> >in netserver side, # strace -p `pgrep netserver`
> >sendto(10, "netperf\0netperf\0netperf\0netperf\0"..., 16384, 0,
> >NULL, 0) = 16384
> >sendto(10, "netperf\0netperf\0netperf\0netperf\0"..., 16384, 0,
> >NULL, 0) = 16384
> >sendto(10, "netperf\0netperf\0netperf\0netperf\0"..., 16384, 0,
> >NULL, 0) = 16384
> >
>
> Hi Rick,
>
> I notice that the -- -m does not work well with TCP_MAERTS in
> netperf 2.6.0, please see the above discussion and could you please
> help us to check this?
After studied the netperf code, I found two trivial issues of netperf
1. for TCP_MAERTS, we can assign two arguments (local send size &
remote send size) by '-m $local_send_size,remote_send_size', but it's
not described in help doc.
+ help message:
-m bytes Set the send size (TCP_STREAM, UDP_STREAM)
-M bytes Set the recv size (TCP_STREAM, UDP_STREAM)
+ src/nettest_omni.c:
scan_omni_args(int argc, char *argv[])
{
...
case 'm':
/* set the send size. if we set the local send size it will add
XMIT to direction. if we set the remote send size it will
add RECV to the direction. likely as not this will need some
additional throught */
break_args_explicit(optarg,arg1,arg2);
if (arg1[0]) {
send_size = convert(arg1);
if (implicit_direction)
direction |= NETPERF_XMIT;
}
if (arg2[0]) {
remote_send_size_req = convert(arg2);
if (implicit_direction)
direction |= NETPERF_RECV;
}
break;
2. wrongly prints send_size (local) to finaly result
If we used '-c -- -m 512', local send_size will be assigned to 512, and it
will be wrongly outputed to the finally result.
this is why Wenli saw a right parameter in result, but captured the wrong
packets.
+ src/nettest_omni.c:
send_tcp_maerts(char remote_host[])
if (local_cpu_usage || remote_cpu_usage) {
...
fprintf(where,
cpu_fmt_1, /* the format string */
rsr_size, /* remote recvbuf size */
lss_size, /* local sendbuf size */
send_size, /* how large were the recvs */
^^^^ this should be changed 'to remote_send_size'
}
else {
...
fprintf(where,
cpu_fmt_1, /* the format string */
rsr_size, /* remote recvbuf size */
lss_size, /* local sendbuf size */
remote_send_size, /* how large were the recvs */
Based on this, I will send a patch to fix netperf output, and Autotest
parameter.
Amos.
> Thanks
>
> >>Amos.
> >>
> >>>#./netperf -H localhost -t TCP_MAERTS -- -m 256
> >>>MIGRATED TCP MAERTS TEST from ::0 (::) port 0 AF_INET6 to localhost
> >>>(::1) port 0 AF_INET6
> >>>Recv Send Send Socket Socket Message
> >>>Elapsed Size Size Size Time Throughput
> >>>bytes bytes bytes secs. 10^6bits/sec
> >>>
> >>>87380 16384 16384 10.00 11390.70
> >>>
> >>>>wenli
> >>>>
> >>>>>Best regards
> >>>>>
> >>>>>Yiqiao Pu
> >>>>>
> >>>>>
> >>>>>>shared/cfg/subtests.cfg.sample | 20 ++++++++++----------
> >>>>>>tests/netperf.py | 4 ++--
> >>>>>>2 files changed, 12 insertions(+), 12 deletions(-)
> >>>>>>
> >>>>>>diff --git a/shared/cfg/subtests.cfg.sample
> >>>>>>b/shared/cfg/subtests.cfg.sample
> >>>>>>index 42cf453..0f3f17a 100644
> >>>>>>--- a/shared/cfg/subtests.cfg.sample
> >>>>>>+++ b/shared/cfg/subtests.cfg.sample
> >>>>>>@@ -2362,8 +2362,8 @@ variants:
> >>>>>>nic_model_nic1 = virtio
> >>>>>># bridge_nic2 = switch
> >>>>>>nic_model_nic2 = e1000
> >>>>>>- netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
> >>>>>>- setup_cmd = "cd /tmp&& rm -rf netperf-2.4.5&& tar xvfj
> >>>>>>netperf-2.4.5.tar.bz2&& cd netperf-2.4.5&& patch -p0<
> >>>>>>../wait_before_data.patch&& ./configure --enable-burst&&
> >>>>>>make"
> >>>>>>+ netperf_files = netperf-2.6.0.tar.bz2
> >>>>>>+ setup_cmd = "cd /tmp&& rm -rf netperf-2.6.0&& tar xvfj
> >>>>>>netperf-2.6.0.tar.bz2&& cd netperf-2.6.0&& ./configure
> >>>>>>--enable-burst&& make"
> >>>>>># configure netperf test parameters
> >>>>>>l = 60
> >>>>>>protocols = "TCP_STREAM TCP_MAERTS TCP_RR"
> >>>>>>@@ -2408,8 +2408,8 @@ variants:
> >>>>>>pci_model_nic2 = e1000
> >>>>>>nics += ' nic2'
> >>>>>>nic_mode = tap
> >>>>>>- netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
> >>>>>>- setup_cmd = "cd /tmp&& rm -rf netperf-2.4.5&& tar xvfj
> >>>>>>netperf-2.4.5.tar.bz2&& cd netperf-2.4.5&& patch -p0<
> >>>>>>../wait_before_data.patch&& ./configure --enable-burst&&
> >>>>>>make"
> >>>>>>+ netperf_files = netperf-2.6.0.tar.bz2
> >>>>>>+ setup_cmd = "cd /tmp&& rm -rf netperf-2.6.0&& tar xvfj
> >>>>>>netperf-2.6.0.tar.bz2&& cd netperf-2.6.0&& ./configure
> >>>>>>--enable-burst&& make"
> >>>>>>guest_ver_cmd = "ver"
> >>>>>>netperf_with_numa = yes
> >>>>>># configure netperf test parameters
> >>>>>>@@ -2454,12 +2454,12 @@ variants:
> >>>>>>config_cmds +=
> >>>>>>,disable_tcp_heuristics_cmd,disabled_tcp_autotuning_cmd,enable_ctcp_cmd
> >>>>>>
> >>>>>>- netperf_cygwin:
> >>>>>>use_cygwin = yes
> >>>>>>- netperf_src = D:\netperf\netperf-2.4.5
> >>>>>>+ netperf_src = D:\netperf\netperf-2.6.0
> >>>>>>cygwin_root = C:\rhcygwin\home\Administrator
> >>>>>>cygwin_start = C:\rhcygwin\Cygwin.bat -i /Cygwin-Terminal.ico -
> >>>>>>netserv_pattern = "hostname\s+[\d+\.]+\s+port\s+\d+"
> >>>>>>netserv_start_cmd = netserver
> >>>>>>- netperf_install_cmd = cd netperf-2.4.5; ./configure
> >>>>>>--enable-burst; make; make install
> >>>>>>+ netperf_install_cmd = cd netperf-2.6.0; ./configure
> >>>>>>--enable-burst; make; make install
> >>>>>>- ntttcp:
> >>>>>>virt_test_type = kvm libvirt
> >>>>>>@@ -2526,12 +2526,12 @@ variants:
> >>>>>>mode = driver
> >>>>>>-load:
> >>>>>>mode = load
> >>>>>>- netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
> >>>>>>+ netperf_files = netperf-2.6.0.tar.bz2
> >>>>>>packet_size = 1500
> >>>>>>- 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"
> >>>>>>+ setup_cmd = "cd %s&& tar xvfj netperf-2.6.0.tar.bz2&& cd
> >>>>>>netperf-2.6.0&& ./configure&& make"
> >>>>>>clean_cmd = " while killall -9 netserver; do True test; done;"
> >>>>>>- netserver_cmd = %s/netperf-2.4.5/src/netserver
> >>>>>>- netperf_cmd = %s/netperf-2.4.5/src/netperf -t %s -H %s
> >>>>>>-l 60 -- -m %s
> >>>>>>+ netserver_cmd = %s/netperf-2.6.0/src/netserver
> >>>>>>+ netperf_cmd = %s/netperf-2.6.0/src/netperf -t %s -H %s
> >>>>>>-l 60 -- -m %s
> >>>>>>- physical_resources_check: install setup image_copy
> >>>>>>unattended_install.cdrom
> >>>>>>virt_test_type = kvm
> >>>>>>diff --git a/tests/netperf.py b/tests/netperf.py
> >>>>>>index 2a9aa74..e0cbd89 100644
> >>>>>>--- a/tests/netperf.py
> >>>>>>+++ b/tests/netperf.py
> >>>>>>@@ -370,8 +370,8 @@ def launch_client(sessions, server,
> >>>>>>server_ctl, host, client, l, nf_args,
> >>>>>>port, params, server_cyg):
> >>>>>>""" Launch netperf clients """
> >>>>>>- client_path = "/tmp/netperf-2.4.5/src/netperf"
> >>>>>>- server_path = "/tmp/netperf-2.4.5/src/netserver"
> >>>>>>+ client_path = "/tmp/netperf-2.6.0/src/netperf"
> >>>>>>+ server_path = "/tmp/netperf-2.6.0/src/netserver"
> >>>>>># Start netserver
> >>>>>>if params.get("os_type") == "windows":
> >>>>>>timeout = float(params.get("timeout", "240"))
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >
> >
>
--
Amos.
_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel