Re: iperf: performance regression (was b44 driver problem?)

Ingo Molnar
2007-06-04T19:32:52Z

* Stephen Hemminger <shemminger@linux-foundation.org> wrote:

> Yes, the following patch makes iperf work better than ever. But are
> other broken applications going to have same problem. Sounds like the
> old "who runs first" fork() problems.

this is the first such app and really, and even for this app: i've been
frequently running iperf on -rt kernels for _years_ and never noticed
how buggy its 'locking' code was, and that it would under some
circumstances use up the whole CPU on high-res timers.

If this were a widespread problem then the right solution would be to
preserve the old behavior. The child-runs-first thing was an unspecified
detail and many apps grew to depend on how the kernel did it - and when
we changed it all hell broke lose. Even today, when i switch off
child-runs-first, Gnome would not start up because some of its startup
threads are racy and hang :-/

I googled for usleep(0) quickly (on google.com/codesearch and on
google.com) and it didnt seem to suggest that the problem is widespread.
(3 hits on the code-search site, all were false positives.)

so ... if this situation were even just a little bit more serious i'd
argue for working this around and implementing some API quirk. But right
now i'm leaning towards just saying that the iperf fix exists and fixes
the problem, and that we already have kernels out with the new behavior.
Maybe we should add a once-per-boot printk to flesh out any other apps?
I'd be surprised if there was more than iperf.

Ingo