[netperf-dev] netperf2 commit notice r478 - in trunk: . doc/examples src

raj at netperf.org raj at netperf.org
Fri Jul 29 15:20:25 PDT 2011


Author: raj
Date: 2011-07-29 15:20:25 -0700 (Fri, 29 Jul 2011)
New Revision: 478

Modified:
   trunk/Release_Notes
   trunk/doc/examples/runemomni.sh
   trunk/doc/examples/runemomniagg2.sh
   trunk/src/netcpu_procstat.c
   trunk/src/netlib.c
Log:
make a warning about a probably sleeping processor a debug output comment some scripts etc

Modified: trunk/Release_Notes
===================================================================
--- trunk/Release_Notes	2011-07-29 00:33:59 UTC (rev 477)
+++ trunk/Release_Notes	2011-07-29 22:20:25 UTC (rev 478)
@@ -1,3 +1,20 @@
+These are the Release Notes for post Revision 2.5.0 top-of-trunk netperf:
+
+*) If the time delta between two events is negative, do not bother
+   doing any math with it in the histogram/statistics code, just
+   increment the ridiculous count and move-on.
+
+*) Fixed a bug which caused local transport retransmissions to be
+   reported as -1 even though the getsockopt() call was
+   successful. (Linux)
+
+*) The src/nettest_omni.c and re-written src/netserver.c code are now
+   known to have compiled under Windows 7 x64 with the Microsoft
+   WDK. There remains a timing issue with confidence intervals which
+   is yet to be addressed, and may have been there for ages. Netserver
+   has been run as a non-spawning (-f) server, netperf has been run,
+   both have run "classic" and "omni" tests.
+
 These are the Release Notes for Revision 2.5.0 of netperf:
 
 *) Add a new -N option to netserver which will suppress all creation

Modified: trunk/doc/examples/runemomni.sh
===================================================================
--- trunk/doc/examples/runemomni.sh	2011-07-29 00:33:59 UTC (rev 477)
+++ trunk/doc/examples/runemomni.sh	2011-07-29 22:20:25 UTC (rev 478)
@@ -1,17 +1,46 @@
+# a script to run a set of single-instance netperf tests
+# between two machines
+
+# the length in seconds of each test iteration. the actual
+# run time will then be somewhere between that times min
+# and max iteration for confidence intervals
 length=30
+
+# unlike the aggregate script, we do not have to worry
+# about everyone all running at the same time, so we can
+# save some time with a lower minimum iteration count
 confidence="-i 30,3"
+
+# the CPUs to which the netperf process will be bound
+# via the -T global option
 netperf_CPUs="0 1 2"
+
+# the CPUs to which the netserver process will be bound
+# via the -T global option
 netserver_CPUs="0 1 2"
+
+# the host/IP to use for the control connection
 control_host=192.168.0.26
+
+# the list of host/IP addresses to actually measure over
 remote_hosts="192.168.0.26 fe80::207:43ff:fe05:590a%eth0"
+
 #reqs="128 256 512 1024"
 reqs="64 128 256 512 1024 1460 2048 4096 8192"
+
+# the burst size for bursted RR tests
 bursts="0 1 2 4 8 16 32 64 128 256"
+
 HDR="-P 1"
-# -O means "human" -o means "csv"
-CSV="-o"
-#CSV="-O"
+# -O means "human" -o means "csv" -k means "keyval"
+# "all" means emit everything.  otherwise, specify a
+# list of output selectors directly or a filename with
+# them therein.  no parameter means a default set will
+# be emitted based on the test type
+CSV="-o all"
+#CSV="-O all"
 
+# which of the tests should we do?
 DO_TCP_STREAM_AUTO=1
 DO_TCP_STREAM_SOPT=1
 DO_TCP_BIDIR=1
@@ -21,11 +50,21 @@
 DO_UDP_BIDIR_REQ=0
 DO_UDP_STREAM=1
 
-
+# when this is set to 0 then netperf and netserver are bound
+# to the same CPU number and we do not walk through all the
+# combinations.  one can do this when the two systems are
+# otherwise identical.  when they are not, then running
+# through the full matrix may be indicated
 FULL_MATRIX=0
 
+# here you should echo some things about the test and its
+# environment and in particular those things not automagically
+# determined by netperf
+echo I NEED TO EDIT THE SCRIPT
 echo interrupts CPU 0 with CPU 1 other socket CPU 2 same socket
 echo ad386a in dl380 g5 2x 5160 at 3GHz to same
+
+# and away we go
 for data in $remote_hosts
 do
 

Modified: trunk/doc/examples/runemomniagg2.sh
===================================================================
--- trunk/doc/examples/runemomniagg2.sh	2011-07-29 00:33:59 UTC (rev 477)
+++ trunk/doc/examples/runemomniagg2.sh	2011-07-29 22:20:25 UTC (rev 478)
@@ -1,4 +1,7 @@
 #set -x
+# edit and add to this array as necessary
+# the hosts you will use should be contiguous
+# starting at index zero
 remote_hosts[0]=192.168.2.3
 remote_hosts[1]=192.168.3.5
 remote_hosts[2]=192.168.4.6
@@ -15,30 +18,68 @@
 remote_hosts[13]=192.168.3.6
 remote_hosts[14]=192.168.4.5
 remote_hosts[15]=192.168.5.3
+
+# this should always be less than or equal to the
+# number of valid hosts in the array above
 num_cli=16
+
+# this will be the length of each individual test
+# iteration
 length=30
+
+# this will be the settings for confidence intervals
+# you can use a smaller number of iterations but
+# to ensure that everyone is running at the same time
+# the min and max iterations MUST be the same
 confidence="-i 30,30"
+
+# the different number of concurrent sessions to be run
+# if you do not start with one concurrent session the 
+# test headers may not be where one wants them and you
+# may need to edit the output to hoist the test header
+# up above the first result
 concurrent_sessions="1 4 8 16 32 64"
+
+# the socket buffer sizes - you may need to tweak
+# some system settings to allow 1M socket buffers
 socket_sizes=" -s 1M -S 1M"
+
+# the burst sizes in the aggregate request/response tests
 #burst_sizes="0 1 4 16 64 256 1024"
 burst_sizes="0 1 4 16"
+
+# this ensures the test header of at least one instance 
+# is displayed
 HDR="-P 1"
-# -O means "human" -o means "csv"
-CSV="-o"
-#CSV="-O"
 
-DO_STREAM=
-DO_MAERTS=
+# -O means "human" -o means "csv" and -k means "keyval"
+# "all" means emit everything it knows to emit. omit "all"
+# and what is emitted will depend on the test. can customize
+# with direct output selection or specifying a file with
+# output selectors in it
+CSV="-o all"
+
+# should tests outbound relative to this system be run?
+DO_STREAM=0
+
+# should tests inbound relative to this system be run?
+DO_MAERTS=0
+
+# should same connection bidirectional tests be run?
 DO_BIDIR=1
+
+# should aggreagte single-byte request/response be run?
+# this can be used to try to get a maximum PPS figure
 DO_RRAGG=1
 
-#echo "throughput, command_line" > tmpfoo
-#CSV="-o tmpfoo"
-
+# here you should echo-out some things about the test
+# particularly those things that will not be automagically
+# captured by netperf.
 echo interrupts spread wherever irqbalanced put them
 echo 4xAD386A in DL785 G5 SLES11B6, HP/vendor drivers
 echo four dl585 G5 clients rh5.2, each with two AD386A
 
+# and here we go
   if [ $DO_STREAM -eq 1 ]; then
   echo TCP_STREAM
   for i in $concurrent_sessions; do

Modified: trunk/src/netcpu_procstat.c
===================================================================
--- trunk/src/netcpu_procstat.c	2011-07-29 00:33:59 UTC (rev 477)
+++ trunk/src/netcpu_procstat.c	2011-07-29 22:20:25 UTC (rev 478)
@@ -271,13 +271,6 @@
   }
   for (i = 0; i < lib_num_loc_cpus; i++) {
 
-    /* it would appear that on some systems, in loopback, nice is
-     *very* effective, causing the looper process to stop dead in its
-     tracks. if this happens, we need to ensure that the calculation
-     does not go south. raj 6/95 and if we run completely out of idle,
-     the same thing could in theory happen to the USE_KSTAT path. raj
-     8/2000 */ 
-
     /* Find the difference in all CPU stat fields */
     diff.user = 
       tick_subtract(lib_start_count[i].user, lib_end_count[i].user);
@@ -302,7 +295,9 @@
 
     /* calculate idle time as a percentage of all CPU states */
     if (total_ticks == 0) {
-      fprintf(stderr, "Total ticks 0 on CPU %d, charging nothing!\n", i);
+      if (debug) {
+	fprintf(where, "Total ticks 0 on CPU %d, charging nothing!\n", i);
+      }
       lib_local_per_cpu_util[i] = 100.0;
     } else {
       lib_local_per_cpu_util[i] = 100.0 * 

Modified: trunk/src/netlib.c
===================================================================
--- trunk/src/netlib.c	2011-07-29 00:33:59 UTC (rev 477)
+++ trunk/src/netlib.c	2011-07-29 22:20:25 UTC (rev 478)
@@ -3866,6 +3866,17 @@
 HIST_add(register HIST h, int time_delta){
    register float val;
    register int base = HIST_NUM_OF_BUCKET / 10;
+
+   /* check for < 0 added via VMware ESX patches. */
+
+   /* hoisted up to the top because we do not want to count any
+      ridiculous values in the actual statistics. right? raj
+      2011-07-28 */
+   if (time_delta < 0) {
+     h->ridiculous++;
+     return;
+   }
+
    if (!h->total)
       h->hmin = h->hmax = time_delta;
    h->total++;
@@ -3879,10 +3890,6 @@
    h->hmin = ((h->hmin < time_delta) ? h->hmin : time_delta);
    h->hmax = ((h->hmax > time_delta) ? h->hmax : time_delta);
    val = (float) time_delta;
-   /* check for < 0 added via VMware ESX patches */
-   if (val < 0) {
-     h->ridiculous++;
-   }
    if(val < 10) h->unit_usec[(int)(val * base)]++;
    else {
      val /= 10;



More information about the netperf-dev mailing list