All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][PATCH] iperf: Upgrade to version 2.0.5
@ 2012-10-06 19:07 Franklin S. Cooper Jr
  2012-10-09  9:07 ` Koen Kooi
  2012-10-10 19:12 ` Cooper Jr., Franklin
  0 siblings, 2 replies; 4+ messages in thread
From: Franklin S. Cooper Jr @ 2012-10-06 19:07 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Franklin S. Cooper Jr

* Upgrade to version 2.0.5.
* Below patches used in version 2.0.4 are no longer needed:
    004-svn-r43-ro.patch (already applied)
    006-iperf-die-on-connect-fail.patch (already applied)
    009-delayloop.patch (equivalent solution already exists)
* Patch 000-Iperf_Fix-CPU-Usage.diff has been updated to apply to
  version 2.0.5
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
---
 .../iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff |  164 --------------------
 .../iperf/iperf-2.0.4/004-svn-r43-ro.patch         |  117 --------------
 .../006-iperf-die-on-connect-fail.patch            |   15 --
 .../iperf/iperf-2.0.4/009-delayloop.patch          |   22 ---
 .../iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff |   45 ++++++
 .../001-cast-to-max_size_t-instead-of-int.patch    |    0
 .../003-fix-hyphen-used-as-minus-sign.patch        |    0
 .../005-iperf-die-on-bind-fail.patch               |    0
 .../007-iperf-reporter-deadlock.patch              |    0
 .../008-numofreport.patch                          |    0
 .../iperf/{iperf_2.0.4.bb => iperf_2.0.5.bb}       |   10 +-
 11 files changed, 49 insertions(+), 324 deletions(-)
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
 create mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff
 rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/001-cast-to-max_size_t-instead-of-int.patch (100%)
 rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/003-fix-hyphen-used-as-minus-sign.patch (100%)
 rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/005-iperf-die-on-bind-fail.patch (100%)
 rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/007-iperf-reporter-deadlock.patch (100%)
 rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/008-numofreport.patch (100%)
 rename meta-oe/recipes-benchmark/iperf/{iperf_2.0.4.bb => iperf_2.0.5.bb} (79%)

diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
deleted file mode 100644
index 7e89953..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
+++ /dev/null
@@ -1,164 +0,0 @@
-[Thread]: Replace thread_rest() with condition variables
-
-This applies the patch by Ingo Molnar from
-
-   http://marc.info/?l=linux-kernel&m=119088670113210&w=2
-
-by reverting previous changes that coincided with changes made by this
-patch. Other than that, the patch is the original from the above URL.
-
-Gerrit
----
- compat/Thread.c |    6 ------
- src/Reporter.c  |   37 +++++++++----------------------------
- src/main.cpp    |    2 ++
- 3 files changed, 11 insertions(+), 34 deletions(-)
-
-rover: changed two remaining thread_rest.
-
---- a/compat/Thread.c
-+++ b/compat/Thread.c
-@@ -405,12 +405,6 @@ int thread_numuserthreads( void ) {
- void thread_rest ( void ) {
- #if defined( HAVE_THREAD )
- #if defined( HAVE_POSIX_THREAD )
--#if defined( _POSIX_PRIORITY_SCHEDULING )
--    sched_yield();
--#else
--    usleep( 0 );
--#endif
--
- #else // Win32
-     SwitchToThread( );
- #endif
---- a/src/Reporter.c
-+++ b/src/Reporter.c
-@@ -110,9 +110,8 @@
- 
- char buffer[64]; // Buffer for printing
- ReportHeader *ReportRoot = NULL;
--int threadWait = 0;
--int threadSleeping = 0;
- extern Condition ReportCond;
-+extern Condition ReportDoneCond;
- int reporter_process_report ( ReportHeader *report );
- void process_report ( ReportHeader *report );
- int reporter_handle_packet( ReportHeader *report );
-@@ -340,7 +339,7 @@
-             // item
-             while ( index == 0 ) {
-                 Condition_Signal( &ReportCond );
--                thread_rest();
-+                Condition_Wait( &ReportDoneCond );
-                 index = agent->reporterindex;
-             }
-             agent->agentindex = 0;
-@@ -348,11 +347,9 @@
-         // Need to make sure that reporter is not about to be "lapped"
-         while ( index - 1 == agent->agentindex ) {
-             Condition_Signal( &ReportCond );
--            thread_rest();
-+            Condition_Wait( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
- 
-         // Put the information there
-         memcpy( agent->data + agent->agentindex, packet, sizeof(ReportStruct) );
-@@ -382,9 +379,6 @@
-         packet->packetLen = 0;
-         ReportPacket( agent, packet );
-         packet->packetID = agent->report.cntDatagrams;
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
--
-     }
- }
- 
-@@ -396,11 +390,8 @@
- void EndReport( ReportHeader *agent ) {
-     if ( agent != NULL ) {
-         int index = agent->reporterindex;
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
--
-         while ( index != -1 ) {
--            thread_rest();
-+            Condition_Wait( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
-         agent->agentindex = -1;
-@@ -421,7 +412,7 @@
- Transfer_Info *GetReport( ReportHeader *agent ) {
-     int index = agent->reporterindex;
-     while ( index != -1 ) {
--        thread_rest();
-+        Condition_Wait( &ReportDoneCond );
-         index = agent->reporterindex;
-     }
-     return &agent->report.info;
-@@ -467,10 +458,6 @@
-              * Update the ReportRoot to include this report.
-              */
-             Condition_Lock( ReportCond );
--	    if ( isUDP(agent) )
--	      threadWait = 0;
--	    else
--	      threadWait = 1;
-             reporthdr->next = ReportRoot;
-             ReportRoot = reporthdr;
-             Condition_Signal( &ReportCond );
-@@ -567,6 +554,7 @@
-         }
-         Condition_Unlock ( ReportCond );
- 
-+again:
-         if ( ReportRoot != NULL ) {
-             ReportHeader *temp = ReportRoot;
-             //Condition_Unlock ( ReportCond );
-@@ -589,19 +577,12 @@
-                 // finished with report so free it
-                 free( temp );
-                 Condition_Unlock ( ReportCond );
-+                Condition_Signal( &ReportDoneCond );
-+                if (ReportRoot)
-+                    goto again;
-             }
--            // yield control of CPU is another thread is waiting
--	    // sleep on a condition variable, as it is much cheaper
--	    // on most platforms than issuing schedyield or usleep
--	    // syscalls
--	    Condition_Lock ( ReportCond );
--	    if ( threadWait && ReportRoot != NULL) {
--	      threadSleeping = 1;
--	      Condition_TimedWait (& ReportCond, 1 );
--	      threadSleeping = 0;
--	    }
--	    Condition_Unlock ( ReportCond );
--	    
-+            Condition_Signal( &ReportDoneCond );
-+            usleep(10000);
-         } else {
-             //Condition_Unlock ( ReportCond );
-         }
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -96,6 +96,7 @@ extern "C" {
-     // records being accessed in a report and also to
-     // serialize modification of the report list
-     Condition ReportCond;
-+    Condition ReportDoneCond;
- }
- 
- // global variables only accessed within this file
-@@ -142,6 +143,7 @@ int main( int argc, char **argv ) {
- 
-     // Initialize global mutexes and conditions
-     Condition_Initialize ( &ReportCond );
-+    Condition_Initialize ( &ReportDoneCond );
-     Mutex_Initialize( &groupCond );
-     Mutex_Initialize( &clients_mutex );
- 
-
- 	  	 
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
deleted file mode 100644
index 8340148..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4-4/AUTHORS	2009-07-06 12:02:24.159696747 +0200
-+++ iperf-2.0.4/AUTHORS	2009-07-06 12:14:32.236079541 +0200
-@@ -28,3 +28,7 @@
- 
- Stephen Hemminger <shemminger@linux-foundation.org>
-   * Linux congestion control selection and theading improvements
-+
-+Nathan Jones <nmjones@users.sourceforge.net>
-+  * patch for underflow when value specified in -n is not a multiple of -l
-+
---- iperf-2.0.4-4/ChangeLog	2009-07-06 12:02:24.166276642 +0200
-+++ iperf-2.0.4/ChangeLog	2009-07-06 12:15:28.883699655 +0200
-@@ -1,3 +1,18 @@
-+2008-05-09 Jon Dugan <jdugan@x1024.net>
-+
-+* change currLen to unsigned to squelch warning generated by Nathan's patch
-+
-+2008-05-09 Nathan Jones <nmjones@users.sourceforge.net>
-+
-+* prevent underflow when the amount of data to be transmitted (-n) is not a
-+multiple of the buffer size (-l)  Patch:
-+https://sourceforge.net/tracker/index.php?func=detail&aid=1943432&group_id=128336&atid=711373
-+
-+2008-04-08 Jon Dugan <jdugan@x1024.net>
-+
-+* print report headers only once
-+* use appropriate report header for UDP tests
-+
- 2008-04-07 Jon Dugan <jdugan@x1024.net>
- 
- * Add man page to autoconf goo
-diff -urN 204orig/src/Client.cpp trunk/src/Client.cpp
---- 204orig/src/Client.cpp	2008-04-08 04:37:54.000000000 +0200
-+++ trunk/src/Client.cpp	2008-05-10 05:18:35.000000000 +0200
-@@ -116,7 +116,7 @@
- const int    kBytes_to_Bits = 8; 
- 
- void Client::RunTCP( void ) {
--    long currLen = 0; 
-+    unsigned long currLen = 0; 
-     struct itimerval it;
-     max_size_t totLen = 0;
- 
-@@ -170,7 +170,12 @@
-         }	
- 
-         if ( !mMode_Time ) {
--            mSettings->mAmount -= currLen;
-+            /* mAmount may be unsigned, so don't let it underflow! */
-+            if( mSettings->mAmount >= currLen ) {
-+                mSettings->mAmount -= currLen;
-+            } else {
-+                mSettings->mAmount = 0;
-+            }
-         }
- 
-     } while ( ! (sInterupted  || 
-@@ -198,7 +203,7 @@
- 
- void Client::Run( void ) {
-     struct UDP_datagram* mBuf_UDP = (struct UDP_datagram*) mBuf; 
--    long currLen = 0; 
-+    unsigned long currLen = 0; 
- 
-     int delay_target = 0; 
-     int delay = 0; 
-@@ -310,7 +315,12 @@
-             delay_loop( delay ); 
-         }
-         if ( !mMode_Time ) {
--            mSettings->mAmount -= currLen;
-+            /* mAmount may be unsigned, so don't let it underflow! */
-+            if( mSettings->mAmount >= currLen ) {
-+                mSettings->mAmount -= currLen;
-+            } else {
-+                mSettings->mAmount = 0;
-+            }
-         }
- 
-     } while ( ! (sInterupted  || 
-diff -urN 204orig/src/ReportDefault.c trunk/src/ReportDefault.c
---- 204orig/src/ReportDefault.c	2008-04-08 04:37:54.000000000 +0200
-+++ trunk/src/ReportDefault.c	2008-04-09 02:08:11.000000000 +0200
-@@ -67,6 +67,7 @@
-  * Prints transfer reports in default style
-  */
- void reporter_printstats( Transfer_Info *stats ) {
-+    static char header_printed = 0;
- 
-     byte_snprintf( buffer, sizeof(buffer)/2, (double) stats->TotalLen,
-                    toupper( stats->mFormat));
-@@ -76,13 +77,19 @@
- 
-     if ( stats->mUDP != (char)kMode_Server ) {
-         // TCP Reporting
--        printf( report_bw_header);
-+        if( !header_printed ) {
-+            printf( report_bw_header);
-+            header_printed = 1;
-+        }
-         printf( report_bw_format, stats->transferID, 
-                 stats->startTime, stats->endTime, 
-                 buffer, &buffer[sizeof(buffer)/2] );
-     } else {
-         // UDP Reporting
--        printf( report_bw_jitter_loss_header);
-+        if( !header_printed ) {
-+            printf( report_bw_jitter_loss_header);
-+            header_printed = 1;
-+        }
-         printf( report_bw_jitter_loss_format, stats->transferID, 
-                 stats->startTime, stats->endTime, 
-                 buffer, &buffer[sizeof(buffer)/2],
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
deleted file mode 100644
index 9e17e6d..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4/src/Client.cpp	2008-04-07 22:37:54.000000000 -0400
-+++ iperf-2.0.4-fixed/src/Client.cpp	2009-03-03 12:30:02.000000000 -0500
-@@ -403,7 +403,7 @@
-     // connect socket
-     rc = connect( mSettings->mSock, (sockaddr*) &mSettings->peer, 
-                   SockAddr_get_sizeof_sockaddr( &mSettings->peer ));
--    WARN_errno( rc == SOCKET_ERROR, "connect" );
-+    FAIL_errno( rc == SOCKET_ERROR, "connect", mSettings );
- 
-     getsockname( mSettings->mSock, (sockaddr*) &mSettings->local, 
-                  &mSettings->size_local );
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
deleted file mode 100644
index a2a0797..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-by Kirby Zhou < kirbyzhou \x40 sohu-rd.com >
-using sched_yield to schedule other threads, so multiple iperf can run simultaneously
-using usleep with delay-loop between 2 package is long than 1.25ms.
-
-Upstream-Status: Inappropriate [not author]
-
---- iperf-2.0.4-4/compat/delay.cpp	2009-07-06 12:02:24.166276642 +0200
-+++ iperf-2.0.4/compat/delay.cpp	2009-07-06 12:01:33.858384005 +0200
-@@ -69,6 +69,13 @@ void delay_loop( unsigned long usec ) {
- 
-     Timestamp now;
-     while ( now.before( end ) ) {
-+       long diff = end.subUsec(now);
-+       if (diff >= 1250) {
-+               usleep(0);
-+       }
-+       if (diff >= 2) {
-+               sched_yield();
-+       }
-         now.setnow();
-     }
- }
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff
new file mode 100644
index 0000000..ff801a4
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff
@@ -0,0 +1,45 @@
+From c7c18bc93441872e7ff2fa47a18a12ef319b7949 Mon Sep 17 00:00:00 2001
+From: Franklin S. Cooper Jr <fcooper@ti.com>
+Date: Sat, 6 Oct 2012 12:32:29 -0500
+Subject: [PATCH] iperf: Fix CPU Usage
+
+* Updated the patch 000-Iperf_Fix-CPU-Usage.diff to apply to iperf v2.0.5
+* That patch was largely based on the patch:
+  http://marc.info/?l=linux-kernel&m=119088670113210&w=2
+* The majority of the changes from 000-Iperf_Fix-CPU-Usage.diff have been
+  incorporated into iperf v2.0.5.
+* The two remaining thread_rest changes that 000-Iperf_Fix-CPU-Usage.diff
+  made have been added to this version of iperf v2.0.5
+
+Upstream-Status: Inappropriate [not author]
+
+Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
+---
+ src/Reporter.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Reporter.c b/src/Reporter.c
+index 7d9263b..4fbb712 100644
+--- a/src/Reporter.c
++++ b/src/Reporter.c
+@@ -391,7 +391,7 @@ void EndReport( ReportHeader *agent ) {
+     if ( agent != NULL ) {
+         int index = agent->reporterindex;
+         while ( index != -1 ) {
+-            thread_rest();
++            Condition_Wait( &ReportDoneCond );
+             index = agent->reporterindex;
+         }
+         agent->agentindex = -1;
+@@ -412,7 +412,7 @@ void EndReport( ReportHeader *agent ) {
+ Transfer_Info *GetReport( ReportHeader *agent ) {
+     int index = agent->reporterindex;
+     while ( index != -1 ) {
+-        thread_rest();
++        Condition_Wait( &ReportDoneCond );
+         index = agent->reporterindex;
+     }
+     return &agent->report.info;
+-- 
+1.7.0.4
+
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/001-cast-to-max_size_t-instead-of-int.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/001-cast-to-max_size_t-instead-of-int.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/003-fix-hyphen-used-as-minus-sign.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/003-fix-hyphen-used-as-minus-sign.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/005-iperf-die-on-bind-fail.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/005-iperf-die-on-bind-fail.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/007-iperf-reporter-deadlock.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/007-iperf-reporter-deadlock.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/008-numofreport.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/008-numofreport.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
similarity index 79%
rename from meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
rename to meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
index bd8bac1..729e845 100644
--- a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
+++ b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
@@ -4,22 +4,20 @@ SECTION = "console/network"
 LICENSE = "NewBSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
 
+PR = "r0"
+
 SRC_URI = " \
 	${SOURCEFORGE_MIRROR}/iperf/iperf-${PV}.tar.gz \
         file://000-Iperf_Fix-CPU-Usage.diff \
         file://001-cast-to-max_size_t-instead-of-int.patch \
         file://003-fix-hyphen-used-as-minus-sign.patch \
-        file://004-svn-r43-ro.patch \
         file://005-iperf-die-on-bind-fail.patch \
-        file://006-iperf-die-on-connect-fail.patch \
         file://007-iperf-reporter-deadlock.patch \
         file://008-numofreport.patch \
-        file://009-delayloop.patch \
 	"
 
-
-SRC_URI[md5sum] = "8c5bc14cc2ea55f18f22afe3c23e3dcb"
-SRC_URI[sha256sum] = "3b52f1c178d6a99c27114929d5469c009197d15379c967b329bafb956f397944"
+SRC_URI[md5sum] = "44b5536b67719f4250faed632a3cd016"
+SRC_URI[sha256sum] = "636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b"
 
 inherit autotools
 
-- 
1.7.0.4




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [meta-oe][PATCH] iperf: Upgrade to version 2.0.5
  2012-10-06 19:07 [meta-oe][PATCH] iperf: Upgrade to version 2.0.5 Franklin S. Cooper Jr
@ 2012-10-09  9:07 ` Koen Kooi
  2012-10-10 19:12 ` Cooper Jr., Franklin
  1 sibling, 0 replies; 4+ messages in thread
From: Koen Kooi @ 2012-10-09  9:07 UTC (permalink / raw)
  To: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Op 06-10-12 21:07, Franklin S. Cooper Jr schreef:
> * Upgrade to version 2.0.5. * Below patches used in version 2.0.4 are no
> longer needed: 004-svn-r43-ro.patch (already applied) 
> 006-iperf-die-on-connect-fail.patch (already applied) 009-delayloop.patch
> (equivalent solution already exists) * Patch 000-Iperf_Fix-CPU-Usage.diff
> has been updated to apply to version 2.0.5 Signed-off-by: Franklin S.
> Cooper Jr <fcooper@ti.com>

> --- a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb +++
> b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb @@ -4,22 +4,20 @@
> SECTION = "console/network" LICENSE = "NewBSD" LIC_FILES_CHKSUM =
> "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
> 
> +PR = "r0" +

*deep sigh*

Remove that.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org

iD8DBQFQc+lEMkyGM64RGpERAlVzAKCSUhWw5mn54/cnKPRMUPjgFCPlvACeP1TK
0HBNGUfRIEwnXFC9zuqZgEE=
=rxrK
-----END PGP SIGNATURE-----




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [meta-oe][PATCH] iperf: Upgrade to version 2.0.5
  2012-10-06 19:07 [meta-oe][PATCH] iperf: Upgrade to version 2.0.5 Franklin S. Cooper Jr
  2012-10-09  9:07 ` Koen Kooi
@ 2012-10-10 19:12 ` Cooper Jr., Franklin
  1 sibling, 0 replies; 4+ messages in thread
From: Cooper Jr., Franklin @ 2012-10-10 19:12 UTC (permalink / raw)
  To: Franklin S. Cooper Jr, openembedded-devel

Please ignore this recipe for right now. I need to send a new version of this patch that includes my massaged version of the 003-fix-hyphen-used-as-minus-sign patch.

-----Original Message-----
From: Franklin S. Cooper Jr [mailto:fcooperjr27@gmail.com] 
Sent: Saturday, October 06, 2012 2:07 PM
To: openembedded-devel@lists.openembedded.org
Cc: Cooper Jr., Franklin
Subject: [meta-oe][PATCH] iperf: Upgrade to version 2.0.5

* Upgrade to version 2.0.5.
* Below patches used in version 2.0.4 are no longer needed:
    004-svn-r43-ro.patch (already applied)
    006-iperf-die-on-connect-fail.patch (already applied)
    009-delayloop.patch (equivalent solution already exists)
* Patch 000-Iperf_Fix-CPU-Usage.diff has been updated to apply to
  version 2.0.5
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
---
 .../iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff |  164 --------------------
 .../iperf/iperf-2.0.4/004-svn-r43-ro.patch         |  117 --------------
 .../006-iperf-die-on-connect-fail.patch            |   15 --
 .../iperf/iperf-2.0.4/009-delayloop.patch          |   22 ---
 .../iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff |   45 ++++++
 .../001-cast-to-max_size_t-instead-of-int.patch    |    0
 .../003-fix-hyphen-used-as-minus-sign.patch        |    0
 .../005-iperf-die-on-bind-fail.patch               |    0
 .../007-iperf-reporter-deadlock.patch              |    0
 .../008-numofreport.patch                          |    0
 .../iperf/{iperf_2.0.4.bb => iperf_2.0.5.bb}       |   10 +-
 11 files changed, 49 insertions(+), 324 deletions(-)  delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
 create mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff
 rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/001-cast-to-max_size_t-instead-of-int.patch (100%)  rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/003-fix-hyphen-used-as-minus-sign.patch (100%)  rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/005-iperf-die-on-bind-fail.patch (100%)  rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/007-iperf-reporter-deadlock.patch (100%)  rename meta-oe/recipes-benchmark/iperf/{iperf-2.0.4 => iperf-2.0.5}/008-numofreport.patch (100%)  rename meta-oe/recipes-benchmark/iperf/{iperf_2.0.4.bb => iperf_2.0.5.bb} (79%)

diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
deleted file mode 100644
index 7e89953..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
+++ /dev/null
@@ -1,164 +0,0 @@
-[Thread]: Replace thread_rest() with condition variables
-
-This applies the patch by Ingo Molnar from
-
-   http://marc.info/?l=linux-kernel&m=119088670113210&w=2
-
-by reverting previous changes that coincided with changes made by this -patch. Other than that, the patch is the original from the above URL.
-
-Gerrit
----
- compat/Thread.c |    6 ------
- src/Reporter.c  |   37 +++++++++----------------------------
- src/main.cpp    |    2 ++
- 3 files changed, 11 insertions(+), 34 deletions(-)
-
-rover: changed two remaining thread_rest.
-
---- a/compat/Thread.c
-+++ b/compat/Thread.c
-@@ -405,12 +405,6 @@ int thread_numuserthreads( void ) {
- void thread_rest ( void ) {
- #if defined( HAVE_THREAD )
- #if defined( HAVE_POSIX_THREAD )
--#if defined( _POSIX_PRIORITY_SCHEDULING )
--    sched_yield();
--#else
--    usleep( 0 );
--#endif
--
- #else // Win32
-     SwitchToThread( );
- #endif
---- a/src/Reporter.c
-+++ b/src/Reporter.c
-@@ -110,9 +110,8 @@
-
- char buffer[64]; // Buffer for printing
- ReportHeader *ReportRoot = NULL;
--int threadWait = 0;
--int threadSleeping = 0;
- extern Condition ReportCond;
-+extern Condition ReportDoneCond;
- int reporter_process_report ( ReportHeader *report );
- void process_report ( ReportHeader *report );
- int reporter_handle_packet( ReportHeader *report ); -@@ -340,7 +339,7 @@
-             // item
-             while ( index == 0 ) {
-                 Condition_Signal( &ReportCond );
--                thread_rest();
-+                Condition_Wait( &ReportDoneCond );
-                 index = agent->reporterindex;
-             }
-             agent->agentindex = 0;
-@@ -348,11 +347,9 @@
-         // Need to make sure that reporter is not about to be "lapped"
-         while ( index - 1 == agent->agentindex ) {
-             Condition_Signal( &ReportCond );
--            thread_rest();
-+            Condition_Wait( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
- 
-         // Put the information there
-         memcpy( agent->data + agent->agentindex, packet, sizeof(ReportStruct) );
-@@ -382,9 +379,6 @@
-         packet->packetLen = 0;
-         ReportPacket( agent, packet );
-         packet->packetID = agent->report.cntDatagrams;
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
--
-     }
- }
-
-@@ -396,11 +390,8 @@
- void EndReport( ReportHeader *agent ) {
-     if ( agent != NULL ) {
-         int index = agent->reporterindex;
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
--
-         while ( index != -1 ) {
--            thread_rest();
-+            Condition_Wait( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
-         agent->agentindex = -1;
-@@ -421,7 +412,7 @@
- Transfer_Info *GetReport( ReportHeader *agent ) {
-     int index = agent->reporterindex;
-     while ( index != -1 ) {
--        thread_rest();
-+        Condition_Wait( &ReportDoneCond );
-         index = agent->reporterindex;
-     }
-     return &agent->report.info;
-@@ -467,10 +458,6 @@
-              * Update the ReportRoot to include this report.
-              */
-             Condition_Lock( ReportCond );
--	    if ( isUDP(agent) )
--	      threadWait = 0;
--	    else
--	      threadWait = 1;
-             reporthdr->next = ReportRoot;
-             ReportRoot = reporthdr;
-             Condition_Signal( &ReportCond );
-@@ -567,6 +554,7 @@
-         }
-         Condition_Unlock ( ReportCond );
- 
-+again:
-         if ( ReportRoot != NULL ) {
-             ReportHeader *temp = ReportRoot;
-             //Condition_Unlock ( ReportCond );
-@@ -589,19 +577,12 @@
-                 // finished with report so free it
-                 free( temp );
-                 Condition_Unlock ( ReportCond );
-+                Condition_Signal( &ReportDoneCond );
-+                if (ReportRoot)
-+                    goto again;
-             }
--            // yield control of CPU is another thread is waiting
--	    // sleep on a condition variable, as it is much cheaper
--	    // on most platforms than issuing schedyield or usleep
--	    // syscalls
--	    Condition_Lock ( ReportCond );
--	    if ( threadWait && ReportRoot != NULL) {
--	      threadSleeping = 1;
--	      Condition_TimedWait (& ReportCond, 1 );
--	      threadSleeping = 0;
--	    }
--	    Condition_Unlock ( ReportCond );
--	    
-+            Condition_Signal( &ReportDoneCond );
-+            usleep(10000);
-         } else {
-             //Condition_Unlock ( ReportCond );
-         }
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -96,6 +96,7 @@ extern "C" {
-     // records being accessed in a report and also to
-     // serialize modification of the report list
-     Condition ReportCond;
-+    Condition ReportDoneCond;
- }
-
- // global variables only accessed within this file -@@ -142,6 +143,7 @@ int main( int argc, char **argv ) {
- 
-     // Initialize global mutexes and conditions
-     Condition_Initialize ( &ReportCond );
-+    Condition_Initialize ( &ReportDoneCond );
-     Mutex_Initialize( &groupCond );
-     Mutex_Initialize( &clients_mutex );
-
-
- 	  	 
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
deleted file mode 100644
index 8340148..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4-4/AUTHORS	2009-07-06 12:02:24.159696747 +0200
-+++ iperf-2.0.4/AUTHORS	2009-07-06 12:14:32.236079541 +0200
-@@ -28,3 +28,7 @@
-
- Stephen Hemminger <shemminger@linux-foundation.org>
-   * Linux congestion control selection and theading improvements
-+
-+Nathan Jones <nmjones@users.sourceforge.net>
-+  * patch for underflow when value specified in -n is not a multiple 
-+of -l
-+
---- iperf-2.0.4-4/ChangeLog	2009-07-06 12:02:24.166276642 +0200
-+++ iperf-2.0.4/ChangeLog	2009-07-06 12:15:28.883699655 +0200
-@@ -1,3 +1,18 @@
-+2008-05-09 Jon Dugan <jdugan@x1024.net>
-+
-+* change currLen to unsigned to squelch warning generated by Nathan's 
-+patch
-+
-+2008-05-09 Nathan Jones <nmjones@users.sourceforge.net>
-+
-+* prevent underflow when the amount of data to be transmitted (-n) is 
-+not a multiple of the buffer size (-l)  Patch:
-+https://sourceforge.net/tracker/index.php?func=detail&aid=1943432&grou
-+p_id=128336&atid=711373
-+
-+2008-04-08 Jon Dugan <jdugan@x1024.net>
-+
-+* print report headers only once
-+* use appropriate report header for UDP tests
-+
- 2008-04-07 Jon Dugan <jdugan@x1024.net>
-
- * Add man page to autoconf goo
-diff -urN 204orig/src/Client.cpp trunk/src/Client.cpp
---- 204orig/src/Client.cpp	2008-04-08 04:37:54.000000000 +0200
-+++ trunk/src/Client.cpp	2008-05-10 05:18:35.000000000 +0200
-@@ -116,7 +116,7 @@
- const int    kBytes_to_Bits = 8; 
-
- void Client::RunTCP( void ) {
--    long currLen = 0; 
-+    unsigned long currLen = 0;
-     struct itimerval it;
-     max_size_t totLen = 0;
-
-@@ -170,7 +170,12 @@
-         }	
- 
-         if ( !mMode_Time ) {
--            mSettings->mAmount -= currLen;
-+            /* mAmount may be unsigned, so don't let it underflow! */
-+            if( mSettings->mAmount >= currLen ) {
-+                mSettings->mAmount -= currLen;
-+            } else {
-+                mSettings->mAmount = 0;
-+            }
-         }
- 
-     } while ( ! (sInterupted  || 
-@@ -198,7 +203,7 @@
-
- void Client::Run( void ) {
-     struct UDP_datagram* mBuf_UDP = (struct UDP_datagram*) mBuf; 
--    long currLen = 0; 
-+    unsigned long currLen = 0;
- 
-     int delay_target = 0; 
-     int delay = 0; 
-@@ -310,7 +315,12 @@
-             delay_loop( delay ); 
-         }
-         if ( !mMode_Time ) {
--            mSettings->mAmount -= currLen;
-+            /* mAmount may be unsigned, so don't let it underflow! */
-+            if( mSettings->mAmount >= currLen ) {
-+                mSettings->mAmount -= currLen;
-+            } else {
-+                mSettings->mAmount = 0;
-+            }
-         }
- 
-     } while ( ! (sInterupted  || 
-diff -urN 204orig/src/ReportDefault.c trunk/src/ReportDefault.c
---- 204orig/src/ReportDefault.c	2008-04-08 04:37:54.000000000 +0200
-+++ trunk/src/ReportDefault.c	2008-04-09 02:08:11.000000000 +0200
-@@ -67,6 +67,7 @@
-  * Prints transfer reports in default style
-  */
- void reporter_printstats( Transfer_Info *stats ) {
-+    static char header_printed = 0;
- 
-     byte_snprintf( buffer, sizeof(buffer)/2, (double) stats->TotalLen,
-                    toupper( stats->mFormat));
-@@ -76,13 +77,19 @@
- 
-     if ( stats->mUDP != (char)kMode_Server ) {
-         // TCP Reporting
--        printf( report_bw_header);
-+        if( !header_printed ) {
-+            printf( report_bw_header);
-+            header_printed = 1;
-+        }
-         printf( report_bw_format, stats->transferID, 
-                 stats->startTime, stats->endTime, 
-                 buffer, &buffer[sizeof(buffer)/2] );
-     } else {
-         // UDP Reporting
--        printf( report_bw_jitter_loss_header);
-+        if( !header_printed ) {
-+            printf( report_bw_jitter_loss_header);
-+            header_printed = 1;
-+        }
-         printf( report_bw_jitter_loss_format, stats->transferID, 
-                 stats->startTime, stats->endTime, 
-                 buffer, &buffer[sizeof(buffer)/2],
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
deleted file mode 100644
index 9e17e6d..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4/src/Client.cpp	2008-04-07 22:37:54.000000000 -0400
-+++ iperf-2.0.4-fixed/src/Client.cpp	2009-03-03 12:30:02.000000000 -0500
-@@ -403,7 +403,7 @@
-     // connect socket
-     rc = connect( mSettings->mSock, (sockaddr*) &mSettings->peer, 
-                   SockAddr_get_sizeof_sockaddr( &mSettings->peer ));
--    WARN_errno( rc == SOCKET_ERROR, "connect" );
-+    FAIL_errno( rc == SOCKET_ERROR, "connect", mSettings );
- 
-     getsockname( mSettings->mSock, (sockaddr*) &mSettings->local, 
-                  &mSettings->size_local );
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
deleted file mode 100644
index a2a0797..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-by Kirby Zhou < kirbyzhou \x40 sohu-rd.com > -using sched_yield to schedule other threads, so multiple iperf can run simultaneously -using usleep with delay-loop between 2 package is long than 1.25ms.
-
-Upstream-Status: Inappropriate [not author]
-
---- iperf-2.0.4-4/compat/delay.cpp	2009-07-06 12:02:24.166276642 +0200
-+++ iperf-2.0.4/compat/delay.cpp	2009-07-06 12:01:33.858384005 +0200
-@@ -69,6 +69,13 @@ void delay_loop( unsigned long usec ) {
- 
-     Timestamp now;
-     while ( now.before( end ) ) {
-+       long diff = end.subUsec(now);
-+       if (diff >= 1250) {
-+               usleep(0);
-+       }
-+       if (diff >= 2) {
-+               sched_yield();
-+       }
-         now.setnow();
-     }
- }
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usage.diff
new file mode 100644
index 0000000..ff801a4
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/000-Iperf_Fix-CPU-Usag
+++ e.diff
@@ -0,0 +1,45 @@
+From c7c18bc93441872e7ff2fa47a18a12ef319b7949 Mon Sep 17 00:00:00 2001
+From: Franklin S. Cooper Jr <fcooper@ti.com>
+Date: Sat, 6 Oct 2012 12:32:29 -0500
+Subject: [PATCH] iperf: Fix CPU Usage
+
+* Updated the patch 000-Iperf_Fix-CPU-Usage.diff to apply to iperf 
+v2.0.5
+* That patch was largely based on the patch:
+  http://marc.info/?l=linux-kernel&m=119088670113210&w=2
+* The majority of the changes from 000-Iperf_Fix-CPU-Usage.diff have 
+been
+  incorporated into iperf v2.0.5.
+* The two remaining thread_rest changes that 
+000-Iperf_Fix-CPU-Usage.diff
+  made have been added to this version of iperf v2.0.5
+
+Upstream-Status: Inappropriate [not author]
+
+Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
+---
+ src/Reporter.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Reporter.c b/src/Reporter.c index 7d9263b..4fbb712 
+100644
+--- a/src/Reporter.c
++++ b/src/Reporter.c
+@@ -391,7 +391,7 @@ void EndReport( ReportHeader *agent ) {
+     if ( agent != NULL ) {
+         int index = agent->reporterindex;
+         while ( index != -1 ) {
+-            thread_rest();
++            Condition_Wait( &ReportDoneCond );
+             index = agent->reporterindex;
+         }
+         agent->agentindex = -1;
+@@ -412,7 +412,7 @@ void EndReport( ReportHeader *agent ) {  
+Transfer_Info *GetReport( ReportHeader *agent ) {
+     int index = agent->reporterindex;
+     while ( index != -1 ) {
+-        thread_rest();
++        Condition_Wait( &ReportDoneCond );
+         index = agent->reporterindex;
+     }
+     return &agent->report.info;
+--
+1.7.0.4
+
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/001-cast-to-max_size_t-instead-of-int.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/001-cast-to-max_size_t-instead-of-int.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/003-fix-hyphen-used-as-minus-sign.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/003-fix-hyphen-used-as-minus-sign.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/005-iperf-die-on-bind-fail.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/005-iperf-die-on-bind-fail.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/007-iperf-reporter-deadlock.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/007-iperf-reporter-deadlock.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/008-numofreport.patch
similarity index 100%
rename from meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch
rename to meta-oe/recipes-benchmark/iperf/iperf-2.0.5/008-numofreport.patch
diff --git a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
similarity index 79%
rename from meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
rename to meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
index bd8bac1..729e845 100644
--- a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
+++ b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
@@ -4,22 +4,20 @@ SECTION = "console/network"
 LICENSE = "NewBSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
 
+PR = "r0"
+
 SRC_URI = " \
 	${SOURCEFORGE_MIRROR}/iperf/iperf-${PV}.tar.gz \
         file://000-Iperf_Fix-CPU-Usage.diff \
         file://001-cast-to-max_size_t-instead-of-int.patch \
         file://003-fix-hyphen-used-as-minus-sign.patch \
-        file://004-svn-r43-ro.patch \
         file://005-iperf-die-on-bind-fail.patch \
-        file://006-iperf-die-on-connect-fail.patch \
         file://007-iperf-reporter-deadlock.patch \
         file://008-numofreport.patch \
-        file://009-delayloop.patch \
 	"
 
-
-SRC_URI[md5sum] = "8c5bc14cc2ea55f18f22afe3c23e3dcb"
-SRC_URI[sha256sum] = "3b52f1c178d6a99c27114929d5469c009197d15379c967b329bafb956f397944"
+SRC_URI[md5sum] = "44b5536b67719f4250faed632a3cd016"
+SRC_URI[sha256sum] = "636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b"
 
 inherit autotools
 
--
1.7.0.4




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [meta-oe][PATCH] iperf: Upgrade to version 2.0.5
@ 2014-03-11 20:23 Lauren Post
  0 siblings, 0 replies; 4+ messages in thread
From: Lauren Post @ 2014-03-11 20:23 UTC (permalink / raw)
  To: openembedded-devel

This version provides better ethernet performance

Patch is required for man page portion of build

Signed-off-by: Lauren Post <lauren.post@freescale.com>
---
 .../iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff |  164 ------------------
 .../001-cast-to-max_size_t-instead-of-int.patch    |   14 --
 .../003-fix-hyphen-used-as-minus-sign.patch        |  178 --------------------
 .../iperf/iperf-2.0.4/004-svn-r43-ro.patch         |  117 -------------
 .../iperf-2.0.4/005-iperf-die-on-bind-fail.patch   |   15 --
 .../006-iperf-die-on-connect-fail.patch            |   15 --
 .../iperf-2.0.4/007-iperf-reporter-deadlock.patch  |   68 --------
 .../iperf/iperf-2.0.4/008-numofreport.patch        |   15 --
 .../iperf/iperf-2.0.4/009-delayloop.patch          |   22 ---
 .../iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch    |    8 +
 meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb     |   46 -----
 meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb     |   18 ++
 12 files changed, 26 insertions(+), 654 deletions(-)
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
 create mode 100755 meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
 delete mode 100644 meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
 create mode 100644 meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb

diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
deleted file mode 100644
index 7e89953..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/000-Iperf_Fix-CPU-Usage.diff
+++ /dev/null
@@ -1,164 +0,0 @@
-[Thread]: Replace thread_rest() with condition variables
-
-This applies the patch by Ingo Molnar from
-
-   http://marc.info/?l=linux-kernel&m=119088670113210&w=2
-
-by reverting previous changes that coincided with changes made by this
-patch. Other than that, the patch is the original from the above URL.
-
-Gerrit
----
- compat/Thread.c |    6 ------
- src/Reporter.c  |   37 +++++++++----------------------------
- src/main.cpp    |    2 ++
- 3 files changed, 11 insertions(+), 34 deletions(-)
-
-rover: changed two remaining thread_rest.
-
---- a/compat/Thread.c
-+++ b/compat/Thread.c
-@@ -405,12 +405,6 @@ int thread_numuserthreads( void ) {
- void thread_rest ( void ) {
- #if defined( HAVE_THREAD )
- #if defined( HAVE_POSIX_THREAD )
--#if defined( _POSIX_PRIORITY_SCHEDULING )
--    sched_yield();
--#else
--    usleep( 0 );
--#endif
--
- #else // Win32
-     SwitchToThread( );
- #endif
---- a/src/Reporter.c
-+++ b/src/Reporter.c
-@@ -110,9 +110,8 @@
- 
- char buffer[64]; // Buffer for printing
- ReportHeader *ReportRoot = NULL;
--int threadWait = 0;
--int threadSleeping = 0;
- extern Condition ReportCond;
-+extern Condition ReportDoneCond;
- int reporter_process_report ( ReportHeader *report );
- void process_report ( ReportHeader *report );
- int reporter_handle_packet( ReportHeader *report );
-@@ -340,7 +339,7 @@
-             // item
-             while ( index == 0 ) {
-                 Condition_Signal( &ReportCond );
--                thread_rest();
-+                Condition_Wait( &ReportDoneCond );
-                 index = agent->reporterindex;
-             }
-             agent->agentindex = 0;
-@@ -348,11 +347,9 @@
-         // Need to make sure that reporter is not about to be "lapped"
-         while ( index - 1 == agent->agentindex ) {
-             Condition_Signal( &ReportCond );
--            thread_rest();
-+            Condition_Wait( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
- 
-         // Put the information there
-         memcpy( agent->data + agent->agentindex, packet, sizeof(ReportStruct) );
-@@ -382,9 +379,6 @@
-         packet->packetLen = 0;
-         ReportPacket( agent, packet );
-         packet->packetID = agent->report.cntDatagrams;
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
--
-     }
- }
- 
-@@ -396,11 +390,8 @@
- void EndReport( ReportHeader *agent ) {
-     if ( agent != NULL ) {
-         int index = agent->reporterindex;
--	if (threadSleeping)
--           Condition_Signal( &ReportCond );
--
-         while ( index != -1 ) {
--            thread_rest();
-+            Condition_Wait( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
-         agent->agentindex = -1;
-@@ -421,7 +412,7 @@
- Transfer_Info *GetReport( ReportHeader *agent ) {
-     int index = agent->reporterindex;
-     while ( index != -1 ) {
--        thread_rest();
-+        Condition_Wait( &ReportDoneCond );
-         index = agent->reporterindex;
-     }
-     return &agent->report.info;
-@@ -467,10 +458,6 @@
-              * Update the ReportRoot to include this report.
-              */
-             Condition_Lock( ReportCond );
--	    if ( isUDP(agent) )
--	      threadWait = 0;
--	    else
--	      threadWait = 1;
-             reporthdr->next = ReportRoot;
-             ReportRoot = reporthdr;
-             Condition_Signal( &ReportCond );
-@@ -567,6 +554,7 @@
-         }
-         Condition_Unlock ( ReportCond );
- 
-+again:
-         if ( ReportRoot != NULL ) {
-             ReportHeader *temp = ReportRoot;
-             //Condition_Unlock ( ReportCond );
-@@ -589,19 +577,12 @@
-                 // finished with report so free it
-                 free( temp );
-                 Condition_Unlock ( ReportCond );
-+                Condition_Signal( &ReportDoneCond );
-+                if (ReportRoot)
-+                    goto again;
-             }
--            // yield control of CPU is another thread is waiting
--	    // sleep on a condition variable, as it is much cheaper
--	    // on most platforms than issuing schedyield or usleep
--	    // syscalls
--	    Condition_Lock ( ReportCond );
--	    if ( threadWait && ReportRoot != NULL) {
--	      threadSleeping = 1;
--	      Condition_TimedWait (& ReportCond, 1 );
--	      threadSleeping = 0;
--	    }
--	    Condition_Unlock ( ReportCond );
--	    
-+            Condition_Signal( &ReportDoneCond );
-+            usleep(10000);
-         } else {
-             //Condition_Unlock ( ReportCond );
-         }
---- a/src/main.cpp
-+++ b/src/main.cpp
-@@ -96,6 +96,7 @@ extern "C" {
-     // records being accessed in a report and also to
-     // serialize modification of the report list
-     Condition ReportCond;
-+    Condition ReportDoneCond;
- }
- 
- // global variables only accessed within this file
-@@ -142,6 +143,7 @@ int main( int argc, char **argv ) {
- 
-     // Initialize global mutexes and conditions
-     Condition_Initialize ( &ReportCond );
-+    Condition_Initialize ( &ReportDoneCond );
-     Mutex_Initialize( &groupCond );
-     Mutex_Initialize( &clients_mutex );
- 
-
- 	  	 
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch
deleted file mode 100644
index b6728d4..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/001-cast-to-max_size_t-instead-of-int.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
---- iperf-2.0.4.orig/src/Settings.cpp.orig	2008-04-08 04:37:54.000000000 +0200
-+++ iperf-2.0.4/src/Settings.cpp	2008-05-07 17:41:03.923942801 +0200
-@@ -458,7 +458,7 @@
-         case 't': // seconds to write for
-             // time mode (instead of amount mode)
-             setModeTime( mExtSettings );
--            mExtSettings->mAmount = (int) (atof( optarg ) * 100.0);
-+            mExtSettings->mAmount = (max_size_t) (atof( optarg ) * 100.0);
-             break;
- 
-         case 'u': // UDP instead of TCP
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch
deleted file mode 100644
index 929b5ac..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/003-fix-hyphen-used-as-minus-sign.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4.orig/man/iperf.1	2008-08-21 00:21:49.290527643 +0200
-+++ iperf-2.0.4/man/iperf.1	2008-08-21 00:35:17.850640445 +0200
-@@ -2,21 +2,21 @@
- .SH NAME
- iperf \- perform network throughput tests
- .SH SYNOPSIS
--.B iperf -s [
-+.B iperf \-s [
- .I options
- .B ]
- 
--.B iperf -c 
-+.B iperf \-c 
- .I server
- .B [
- .I options
- .B ]
- 
--.B iperf -u -s [
-+.B iperf \-u \-s [
- .I options
- .B ]
- 
--.B iperf -u -c 
-+.B iperf \-u \-c 
- .I server
- .B [
- .I options
-@@ -28,103 +28,103 @@
- traffic).  
- .SH "GENERAL OPTIONS"
- .TP
--.BR -f ", " --format " "
-+.BR \-f ", " \-\-format " "
- [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes
- .TP
--.BR -h ", " --help " "
-+.BR \-h ", " \-\-help " "
- print a help synopsis
- .TP
--.BR -i ", " --interval " \fIn\fR"
-+.BR \-i ", " \-\-interval " \fIn\fR"
- pause \fIn\fR seconds between periodic bandwidth reports
- .TP
--.BR -l ", " --len " \fIn\fR[KM]"
-+.BR \-l ", " \-\-len " \fIn\fR[KM]"
- set length read/write buffer to \fIn\fR (default 8 KB)
- .TP
--.BR -m ", " --print_mss " "
-+.BR \-m ", " \-\-print_mss " "
- print TCP maximum segment size (MTU - TCP/IP header)
- .TP
--.BR -o ", " --output " <filename>"
-+.BR \-o ", " \-\-output " <filename>"
- output the report or error message to this specified file
- .TP
--.BR -p ", " --port " \fIn\fR"
-+.BR \-p ", " \-\-port " \fIn\fR"
- set server port to listen on/connect to to \fIn\fR (default 5001)
- .TP
--.BR -u ", " --udp " "
-+.BR \-u ", " \-\-udp " "
- use UDP rather than TCP
- .TP
--.BR -w ", " --window " \fIn\fR[KM]"
-+.BR \-w ", " \-\-window " \fIn\fR[KM]"
- TCP window size (socket buffer size)
- .TP
--.BR -B ", " --bind " <host>"
-+.BR \-B ", " \-\-bind " <host>"
- bind to <host>, an interface or multicast address
- .TP
--.BR -C ", " --compatibility " "
-+.BR \-C ", " \-\-compatibility " "
- for use with older versions does not sent extra msgs
- .TP
--.BR -M ", " --mss " \fIn\fR"
-+.BR \-M ", " \-\-mss " \fIn\fR"
- set TCP maximum segment size (MTU - 40 bytes)
- .TP
--.BR -N ", " --nodelay " "
-+.BR \-N ", " \-\-nodelay " "
- set TCP no delay, disabling Nagle's Algorithm
- .TP
--.BR -v ", " --version " "
-+.BR \-v ", " \-\-version " "
- print version information and quit
- .TP
--.BR -V ", " --IPv6Version " "
-+.BR \-V ", " \-\-IPv6Version " "
- Set the domain to IPv6
- .TP
--.BR -x ", " --reportexclude " "
-+.BR \-x ", " \-\-reportexclude " "
- [CDMSV]   exclude C(connection) D(data) M(multicast) S(settings) V(server) reports
- .TP
--.BR -y ", " --reportstyle " C|c"
-+.BR \-y ", " \-\-reportstyle " C|c"
- if set to C or c report results as CSV (comma separated values)
- .SH "SERVER SPECIFIC OPTIONS"
- .TP
--.BR -s ", " --server " "
-+.BR \-s ", " \-\-server " "
- run in server mode
- .TP
--.BR -U ", " --single_udp " "
-+.BR \-U ", " \-\-single_udp " "
- run in single threaded UDP mode
- .TP
--.BR -D ", " --daemon " "
-+.BR \-D ", " \-\-daemon " "
- run the server as a daemon
- .SH "CLIENT SPECIFIC OPTIONS"
- .TP
--.BR -b ", " --bandwidth " \fIn\fR[KM]"
-+.BR \-b ", " \-\-bandwidth " \fIn\fR[KM]"
- set target bandwidth to \fIn\fR bits/sec (default 1 Mbit/sec).
--This setting requires UDP (-u).
-+This setting requires UDP (\-u).
- .TP
--.BR -c ", " --client " <host>"
-+.BR \-c ", " \-\-client " <host>"
- run in client mode, connecting to <host>
- .TP
--.BR -d ", " --dualtest " "
-+.BR \-d ", " \-\-dualtest " "
- Do a bidirectional test simultaneously
- .TP
--.BR -n ", " --num " \fIn\fR[KM]"
--number of bytes to transmit (instead of -t)
-+.BR \-n ", " \-\-num " \fIn\fR[KM]"
-+number of bytes to transmit (instead of \-t)
- .TP
--.BR -r ", " --tradeoff " "
-+.BR \-r ", " \-\-tradeoff " "
- Do a bidirectional test individually
- .TP
--.BR -t ", " --time " \fIn\fR"
-+.BR \-t ", " \-\-time " \fIn\fR"
- time in seconds to transmit for (default 10 secs)
- .TP
--.BR -F ", " --fileinput " <name>"
-+.BR \-F ", " \-\-fileinput " <name>"
- input the data to be transmitted from a file
- .TP
--.BR -I ", " --stdin " "
-+.BR \-I ", " \-\-stdin " "
- input the data to be transmitted from stdin
- .TP
--.BR -L ", " --listenport " \fIn\fR"
-+.BR \-L ", " \-\-listenport " \fIn\fR"
- port to recieve bidirectional tests back on
- .TP
--.BR -P ", " --parallel " \fIn\fR"
-+.BR \-P ", " \-\-parallel " \fIn\fR"
- number of parallel client threads to run
- .TP
--.BR -T ", " --ttl " \fIn\fR"
-+.BR \-T ", " \-\-ttl " \fIn\fR"
- time-to-live, for multicast (default 1)
- .TP
--.BR -Z ", " --linux-congestion " <algo>"
-+.BR \-Z ", " \-\-linux\-congestion " <algo>"
- set TCP congestion control algorithm (Linux only)
- .SH ENVIRONMENT
- .TP
-@@ -143,6 +143,6 @@
- Kevin Gibbs,
- John Estabrook <jestabro at ncsa.uiuc.edu>,
- Andrew Gallatin <gallatin at gmail.com>,
--Stephen Hemminger <shemminger at linux-foundation.org>
-+Stephen Hemminger <shemminger at linux\-foundation.org>
- .SH "SEE ALSO"
- http://iperf.sourceforge.net/
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
deleted file mode 100644
index 8340148..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/004-svn-r43-ro.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4-4/AUTHORS	2009-07-06 12:02:24.159696747 +0200
-+++ iperf-2.0.4/AUTHORS	2009-07-06 12:14:32.236079541 +0200
-@@ -28,3 +28,7 @@
- 
- Stephen Hemminger <shemminger@linux-foundation.org>
-   * Linux congestion control selection and theading improvements
-+
-+Nathan Jones <nmjones@users.sourceforge.net>
-+  * patch for underflow when value specified in -n is not a multiple of -l
-+
---- iperf-2.0.4-4/ChangeLog	2009-07-06 12:02:24.166276642 +0200
-+++ iperf-2.0.4/ChangeLog	2009-07-06 12:15:28.883699655 +0200
-@@ -1,3 +1,18 @@
-+2008-05-09 Jon Dugan <jdugan@x1024.net>
-+
-+* change currLen to unsigned to squelch warning generated by Nathan's patch
-+
-+2008-05-09 Nathan Jones <nmjones@users.sourceforge.net>
-+
-+* prevent underflow when the amount of data to be transmitted (-n) is not a
-+multiple of the buffer size (-l)  Patch:
-+https://sourceforge.net/tracker/index.php?func=detail&aid=1943432&group_id=128336&atid=711373
-+
-+2008-04-08 Jon Dugan <jdugan@x1024.net>
-+
-+* print report headers only once
-+* use appropriate report header for UDP tests
-+
- 2008-04-07 Jon Dugan <jdugan@x1024.net>
- 
- * Add man page to autoconf goo
-diff -urN 204orig/src/Client.cpp trunk/src/Client.cpp
---- 204orig/src/Client.cpp	2008-04-08 04:37:54.000000000 +0200
-+++ trunk/src/Client.cpp	2008-05-10 05:18:35.000000000 +0200
-@@ -116,7 +116,7 @@
- const int    kBytes_to_Bits = 8; 
- 
- void Client::RunTCP( void ) {
--    long currLen = 0; 
-+    unsigned long currLen = 0; 
-     struct itimerval it;
-     max_size_t totLen = 0;
- 
-@@ -170,7 +170,12 @@
-         }	
- 
-         if ( !mMode_Time ) {
--            mSettings->mAmount -= currLen;
-+            /* mAmount may be unsigned, so don't let it underflow! */
-+            if( mSettings->mAmount >= currLen ) {
-+                mSettings->mAmount -= currLen;
-+            } else {
-+                mSettings->mAmount = 0;
-+            }
-         }
- 
-     } while ( ! (sInterupted  || 
-@@ -198,7 +203,7 @@
- 
- void Client::Run( void ) {
-     struct UDP_datagram* mBuf_UDP = (struct UDP_datagram*) mBuf; 
--    long currLen = 0; 
-+    unsigned long currLen = 0; 
- 
-     int delay_target = 0; 
-     int delay = 0; 
-@@ -310,7 +315,12 @@
-             delay_loop( delay ); 
-         }
-         if ( !mMode_Time ) {
--            mSettings->mAmount -= currLen;
-+            /* mAmount may be unsigned, so don't let it underflow! */
-+            if( mSettings->mAmount >= currLen ) {
-+                mSettings->mAmount -= currLen;
-+            } else {
-+                mSettings->mAmount = 0;
-+            }
-         }
- 
-     } while ( ! (sInterupted  || 
-diff -urN 204orig/src/ReportDefault.c trunk/src/ReportDefault.c
---- 204orig/src/ReportDefault.c	2008-04-08 04:37:54.000000000 +0200
-+++ trunk/src/ReportDefault.c	2008-04-09 02:08:11.000000000 +0200
-@@ -67,6 +67,7 @@
-  * Prints transfer reports in default style
-  */
- void reporter_printstats( Transfer_Info *stats ) {
-+    static char header_printed = 0;
- 
-     byte_snprintf( buffer, sizeof(buffer)/2, (double) stats->TotalLen,
-                    toupper( stats->mFormat));
-@@ -76,13 +77,19 @@
- 
-     if ( stats->mUDP != (char)kMode_Server ) {
-         // TCP Reporting
--        printf( report_bw_header);
-+        if( !header_printed ) {
-+            printf( report_bw_header);
-+            header_printed = 1;
-+        }
-         printf( report_bw_format, stats->transferID, 
-                 stats->startTime, stats->endTime, 
-                 buffer, &buffer[sizeof(buffer)/2] );
-     } else {
-         // UDP Reporting
--        printf( report_bw_jitter_loss_header);
-+        if( !header_printed ) {
-+            printf( report_bw_jitter_loss_header);
-+            header_printed = 1;
-+        }
-         printf( report_bw_jitter_loss_format, stats->transferID, 
-                 stats->startTime, stats->endTime, 
-                 buffer, &buffer[sizeof(buffer)/2],
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch
deleted file mode 100644
index ec13d6b..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/005-iperf-die-on-bind-fail.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4/src/Listener.cpp	2009-02-23 16:20:31.000000000 -0500
-+++ iperf-2.0.4-fixed/src/Listener.cpp	2009-02-23 16:20:40.000000000 -0500
-@@ -333,7 +333,7 @@
- #endif
-     {
-         rc = bind( mSettings->mSock, (sockaddr*) &mSettings->local, mSettings->size_local );
--        WARN_errno( rc == SOCKET_ERROR, "bind" );
-+        FAIL_errno( rc == SOCKET_ERROR, "bind", mSettings );
-     }
-     // listen for connections (TCP only).
-     // default backlog traditionally 5
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
deleted file mode 100644
index 9e17e6d..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/006-iperf-die-on-connect-fail.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Import Debian patches and fix a lot of real bugs. 
-
-Upstream-Status: Inappropriate [not author. Above message was get from oe.dev c10c33f86903c93611023197a7f812459c2dfe2d]
-
---- iperf-2.0.4/src/Client.cpp	2008-04-07 22:37:54.000000000 -0400
-+++ iperf-2.0.4-fixed/src/Client.cpp	2009-03-03 12:30:02.000000000 -0500
-@@ -403,7 +403,7 @@
-     // connect socket
-     rc = connect( mSettings->mSock, (sockaddr*) &mSettings->peer, 
-                   SockAddr_get_sizeof_sockaddr( &mSettings->peer ));
--    WARN_errno( rc == SOCKET_ERROR, "connect" );
-+    FAIL_errno( rc == SOCKET_ERROR, "connect", mSettings );
- 
-     getsockname( mSettings->mSock, (sockaddr*) &mSettings->local, 
-                  &mSettings->size_local );
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch
deleted file mode 100644
index 4b5f914..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/007-iperf-reporter-deadlock.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-by Kirby Zhou < kirbyzhou \x40 sohu-rd.com >
-add a Condition_Wait_Event for ReporterDoneCond
-
-Upstream-Status: Inappropriate [not author]
-
---- iperf-2.0.4.orig/include/Condition.h	2007-08-30 00:06:19.000000000 +0200
-+++ iperf-2.0.4/include/Condition.h	2009-07-06 11:45:02.407700310 +0200
-@@ -115,6 +115,11 @@ typedef struct Condition {
-     // sleep this thread, waiting for condition signal
- #if   defined( HAVE_POSIX_THREAD )
-     #define Condition_Wait( Cond ) pthread_cond_wait( &(Cond)->mCondition, &(Cond)->mMutex )
-+    #define Condition_Wait_Event( Cond ) do { \
-+        Mutex_Lock( &(Cond)->mMutex ); \
-+        pthread_cond_wait( &(Cond)->mCondition, &(Cond)->mMutex ); \
-+        Mutex_Unlock( &(Cond)->mMutex ); \
-+    } while ( 0 )
- #elif defined( HAVE_WIN32_THREAD )
-     // atomically release mutex and wait on condition,                      
-     // then re-acquire the mutex
-@@ -122,6 +127,10 @@ typedef struct Condition {
-         SignalObjectAndWait( (Cond)->mMutex, (Cond)->mCondition, INFINITE, false ); \
-         Mutex_Lock( &(Cond)->mMutex );                          \
-     } while ( 0 )
-+    #define Condition_Wait_Event( Cond ) do { \
-+        Mutex_Lock( &(Cond)->mMutex ); \
-+        SignalObjectAndWait( (Cond)->mMutex, (Cond)->mCondition, INFINITE, false ); \
-+    } while ( 0 )
- #else
-     #define Condition_Wait( Cond )
- #endif
---- iperf-2.0.4.orig/src/Reporter.c	2009-07-06 11:49:05.996443011 +0200
-+++ iperf-2.0.4/src/Reporter.c	2009-07-06 11:46:52.919699530 +0200
-@@ -339,7 +339,7 @@ void ReportPacket( ReportHeader* agent, 
-             // item
-             while ( index == 0 ) {
-                 Condition_Signal( &ReportCond );
--                Condition_Wait( &ReportDoneCond );
-+                Condition_Wait_Event( &ReportDoneCond );
-                 index = agent->reporterindex;
-             }
-             agent->agentindex = 0;
-@@ -347,7 +347,7 @@ void ReportPacket( ReportHeader* agent, 
-         // Need to make sure that reporter is not about to be "lapped"
-         while ( index - 1 == agent->agentindex ) {
-             Condition_Signal( &ReportCond );
--            Condition_Wait( &ReportDoneCond );
-+            Condition_Wait_Event( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
- 
-@@ -391,7 +391,7 @@ void EndReport( ReportHeader *agent ) {
-     if ( agent != NULL ) {
-         int index = agent->reporterindex;
-         while ( index != -1 ) {
--            Condition_Wait( &ReportDoneCond );
-+            Condition_Wait_Event( &ReportDoneCond );
-             index = agent->reporterindex;
-         }
-         agent->agentindex = -1;
-@@ -412,7 +412,7 @@ void EndReport( ReportHeader *agent ) {
- Transfer_Info *GetReport( ReportHeader *agent ) {
-     int index = agent->reporterindex;
-     while ( index != -1 ) {
--        Condition_Wait( &ReportDoneCond );
-+        Condition_Wait_Event( &ReportDoneCond );
-         index = agent->reporterindex;
-     }
-     return &agent->report.info;
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch
deleted file mode 100644
index c5d85b1..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/008-numofreport.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-by Kirby Zhou < kirbyzhou \x40 sohu-rd.com >
-increase the queue length to avoid thread racing
-
-Upstream-Status: Inappropriate [not author]
---- iperf-2.0.4.orig/include/Reporter.h	2008-04-08 04:37:54.000000000 +0200
-+++ iperf-2.0.4/include/Reporter.h	2009-07-06 11:53:58.700541554 +0200
-@@ -61,7 +61,7 @@ struct server_hdr;
- 
- #include "Settings.hpp"
- 
--#define NUM_REPORT_STRUCTS 700
-+#define NUM_REPORT_STRUCTS 5700
- #define NUM_MULTI_SLOTS    5
- 
- #ifdef __cplusplus
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
deleted file mode 100644
index a2a0797..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf-2.0.4/009-delayloop.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-by Kirby Zhou < kirbyzhou \x40 sohu-rd.com >
-using sched_yield to schedule other threads, so multiple iperf can run simultaneously
-using usleep with delay-loop between 2 package is long than 1.25ms.
-
-Upstream-Status: Inappropriate [not author]
-
---- iperf-2.0.4-4/compat/delay.cpp	2009-07-06 12:02:24.166276642 +0200
-+++ iperf-2.0.4/compat/delay.cpp	2009-07-06 12:01:33.858384005 +0200
-@@ -69,6 +69,13 @@ void delay_loop( unsigned long usec ) {
- 
-     Timestamp now;
-     while ( now.before( end ) ) {
-+       long diff = end.subUsec(now);
-+       if (diff >= 1250) {
-+               usleep(0);
-+       }
-+       if (diff >= 2) {
-+               sched_yield();
-+       }
-         now.setnow();
-     }
- }
diff --git a/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
new file mode 100755
index 0000000..12e8f46
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
@@ -0,0 +1,8 @@
+diff --git iperf-2.0.5/man/Makefile.am iperf-2.0.5/man/Makefile.am
+ index ed97bc6..728873f 100644
+--- iperf-2.0.5/man/Makefile.am
++++ iperf-2.0.5/man/Makefile.am
+@@ -1,2 +1 @@
+-man_MANS = iperf.1
+-dist_man_MANS = $(man_MANS)
++dist_man_MANS = iperf.1
diff --git a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb b/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
deleted file mode 100644
index 4261c95..0000000
--- a/meta-oe/recipes-benchmark/iperf/iperf_2.0.4.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
-HOMEPAGE = "http://dast.nlanr.net/Projects/Iperf/"
-SECTION = "console/network"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
-
-SRC_URI = " \
-    ${SOURCEFORGE_MIRROR}/iperf/iperf-${PV}.tar.gz \
-        file://000-Iperf_Fix-CPU-Usage.diff \
-        file://001-cast-to-max_size_t-instead-of-int.patch \
-        file://003-fix-hyphen-used-as-minus-sign.patch \
-        file://004-svn-r43-ro.patch \
-        file://005-iperf-die-on-bind-fail.patch \
-        file://006-iperf-die-on-connect-fail.patch \
-        file://007-iperf-reporter-deadlock.patch \
-        file://008-numofreport.patch \
-        file://009-delayloop.patch \
-"
-
-
-SRC_URI[md5sum] = "8c5bc14cc2ea55f18f22afe3c23e3dcb"
-SRC_URI[sha256sum] = "3b52f1c178d6a99c27114929d5469c009197d15379c967b329bafb956f397944"
-
-inherit autotools
-
-S="${WORKDIR}/iperf-${PV}"
-
-EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
-
-do_configure() {
-    export ac_cv_func_malloc_0_nonnull=yes
-    gnu-configize
-    oe_runconf
-}
-
-do_compile() {
-    cd ${WORKDIR}/iperf-${PV}
-    oe_runmake
-}
-
-do_install() {
-    cd ${WORKDIR}/iperf-${PV}/src
-    oe_runmake DESTDIR=${D} install
-}
-
-
diff --git a/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
new file mode 100644
index 0000000..a207716
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
+HOMEPAGE = "http://dast.nlanr.net/Projects/Iperf/"
+SECTION = "console/network"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
+
+SRC_URI = " ${SOURCEFORGE_MIRROR}/iperf/${PN}-${PV}.tar.gz \
+            file://iperf-2.0.5_ManPage.patch \
+          "
+
+SRC_URI[md5sum] = "44b5536b67719f4250faed632a3cd016"
+SRC_URI[sha256sum] = "636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b"
+
+S = "${WORKDIR}/${PN}-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
-- 
1.7.9.5




^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-11 20:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-06 19:07 [meta-oe][PATCH] iperf: Upgrade to version 2.0.5 Franklin S. Cooper Jr
2012-10-09  9:07 ` Koen Kooi
2012-10-10 19:12 ` Cooper Jr., Franklin
2014-03-11 20:23 Lauren Post

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.