Hello, The test settings are:
server: iperf -s -u client: iperf -c 192.168.1.2 -u -P 4 -t 10 -b 600M iperf is ver. 2.0.5 which is the latest version to my knowledge, and I cross-compiled it on our arch. I found that some threads are not completed and hang there for ever. I looked into this issue. I found that those iperf client threads hang at Condition_Wait( &ReportDoneCond ). The issue seems to be due to some condition variables are not locked so there are race conditions. I made a quick fix (see the following patch). The issue is now gone. Thanks, Paul --- Reporter.c.ori 2012-04-12 16:43:05.000000000 +0800 +++ Reporter.c 2012-04-13 10:09:23.000000000 +0800 @@ -339,7 +339,9 @@ // item while ( index == 0 ) { Condition_Signal( &ReportCond ); + Condition_Lock( ReportDoneCond ); Condition_Wait( &ReportDoneCond ); + Condition_Unlock( ReportDoneCond ); index = agent->reporterindex; } agent->agentindex = 0; @@ -347,7 +349,9 @@ // Need to make sure that reporter is not about to be "lapped" while ( index - 1 == agent->agentindex ) { Condition_Signal( &ReportCond ); + Condition_Lock( ReportDoneCond ); Condition_Wait( &ReportDoneCond ); + Condition_Unlock( ReportDoneCond ); index = agent->reporterindex; } ------------------------------------------------------------------------------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 _______________________________________________ Iperf-users mailing list Iperf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iperf-users