Upakul, thank you for testing. So it seems the problem is not in this corner. I also recall comparing the performance of iperf 2.0.4 against 2.0.2 with that patch - Jon has added some condition variables, which seem to have a similar effect (testing with 2.0.4 also gave modest CPU usage).
With regard to the delay loop, the high CPU consumption seems clear since delay_loop() constantly calls gettimeofday(), i.e. issueing the same system call over and over again in a busy-wait loop. Which agrees with your analysis. I have had problems with this, too, but in a different corner: when measuring the actual times, delay_loop() sometimes added something like 50 milliseconds at random times, which seems like a quantum for a context switch. It got much better when replacing the busy-wait loop with a call to the Posix function nanosleep(), since this uses hrtimers internally and blocks signals. Although the patch was initially not intended to reduce CPU usage, I could well imagine that it does since removes the busy-wait loop. If you have a moment of time, could you check out whether this makes a difference -- it is in the repository, on https://sourceforge.net/tracker/index.php?func=detail&aid=1940009&group_id=128336&atid=711373 Best regards Gerrit Quoting Upakul Barkakaty: | Hi Gerrit, | | Thanks a lot for your reply. I indeed tried out the patch but it did not | make any difference. I am still seeing 0% CPU Idle. | | It looks to me as if the delay_loop() function in the file Client.cpp is | holding the processor in the kernel space while adjusting the thoughput | speeds, resulting in 0% CPU Idle. On trying out replacing delay_loop() by | usleep() function, Idle MIPS were seen to be available. Or perhaps is it | the case that iperf should be used only for throughput measurement and | might not be so appropriate for measuring the cpu utilization? | | -- | Regards, | Upakul Barkakaty | | On 5/2/08, Gerrit Renker <[EMAIL PROTECTED]> wrote: | | Dear Upakul, | | if it is not too much of a bother, can you please check if the attached | patch fixes the CPU usage problem? | | It is a port of Ingo Molnar's CPU usage fix - we have used that patch in | iperf with great benefit (the CPU usage went down to very modest | values). | | Regards | Gerrit | | Quoting Upakul Barkakaty: | | Hi Jon, | | | | I have upgraded to Iperf-v2.0.4. But unfortunately, even with this | version | | I observed that the Iperf client was consuming all the CPU MIPS | even if it | | was running at 1 Mbps. The University of Aberdeen is a charity registered in Scotland, No SC013683. ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Iperf-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/iperf-users
