(Whoops, fumble fingers, continuing) On Wed, Jul 30, 2008 at 3:12 PM, Andrew Gallatin <[EMAIL PROTECTED]> wrote: > Iperf does an enormous amount of work for each socket read with > UDP. For every single receive, it: > > - timestamps the packet via gettimeofday() which can be incredibly expensive on some platforms which do not use TSC for the timecounter.
- calls ReportPacket(), which does a large number of thread operations to coordinate with the reporter thread. To improve UDP performance, I'd try several things in order: 1) use a larger message size (-l 8192) on both sides. This will reduce the work done per-byte 2) Try replacing the gettimeofday() calls in Server::Run() by just memsetting the tv to 0. I have not tried this, and something may break if this is done. 3) Build without threads by hacking config.h by commenting out HAVE_POSIX_THREAD and HAVE_PTHREAD after running configure, but prior to building. Do any of these things help? For me, #3 improves 10GbE UDP multicast receive performance from 1.5Gb/s to line rate using a 2.6.22 kernel running on a RHEL4 box (2.0GHz athlon64x2) Drew ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Iperf-users mailing list Iperf-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iperf-users