In article <zSJRf.4710$(E-Mail Removed)>,
Rick Jones <(E-Mail Removed)> wrote:
>>>>I am looking for someone who knows the internals of the TCP
>>>>implementation on Linux (2.6.10 or thereabouts).
>
>>>Tried the mailing lists for linux-kernel and friends?
>
>> Yes, I've poked around a bit. Seems this is an area seldom touched upon.
>
>netdev is probably the one you want, although the folks in netdev may
>or may not take kindly to someone effectively disabling slow-start -
Hi Rick,
Thanks for the followup. Turns out I've made some good progress today.
At the suggestion of someone else, I checked into the possibility that
the ethernet driver was doing interrupt mitigation (a.k.a. interrupt
coalescing), and it turns out it was. Turning that off took my 500KB
transfer from 20 milliseconds down to just under 9 milliseconds. Not
completely what I was hoping for, but it's a start!

) Also, I won't
be able to keep interrupt coalescing totally turned off, but at least
I know that's one of the knobs I'll have to tune.
Even so, I will take a look at some of these other mailing lists and
resources, thanks!
>although if you have a patch that adds a sysctl might as well share it
>with them
I did add a sysctl (tcp_initial_cwnd) which I'd be glad to share, but
it's really not rocket science. Until I understand better how snd_cwnd
is supposed to be used and grow and shrink, I'd be reluctant to just
throw another knob into the mix. I was hoping someone who knew that
part of the TCP implementation could enlighten me?
>>>Why stay back at 2.6.10? 2.6.15.6 is latest stable, lots of bugfix,
>>>performance fixes since then.
>
>> I don't get to chose the version - this company has everything
>> working on 2.6.10 and doesn't think such a change is warranted at
>> this time.
>
>I can almost guarantee that the first request will be to try on a
>newer version.
Yes, it has been.
>If you can reproduce the problem on some "other"
>hardware that you can then bump to a newer version and still show the
>problem it will help your cause greatly.
Despite the previously mentioned observation about interrupt coalescing,
I tried a similar transfer on a different Linux box with a different
processor and got somewhat similar behavior after the peer's receive
window size increased. Still, I haven't been able to optimize the tests
on the x86 server to the point that I could make any real (fair) comparisons
(yet). I'll be doing analysis of that trace tomorrow to see what I can
learn from that?
>You would though likely have
>to back-port any changes into the 2.6.10 bits in use at that company.
That wouldn't be nearly as terrible as trying to upgrade the entire
kernel! ;^)
Forgive my ignorance, but where is the best place to find the newer
versions of Linux kernel code? Does each distribution maintain its
own set of sources? I don't know how that works?
Patrick
========= For LAN/WAN Protocol Analysis, check out PacketView Pro! =========
Patrick Klos Email:
(E-Mail Removed)
Klos Technologies, Inc. Web:
http://www.klos.com/
====================
http://www.loving-long-island.com/ ====================