It's proven a little harder than anticipated to create a trivial test case, but
I should be able to post some traces from a freely-available app soon.
Thanks, will try.
Indeed. Setting tcp_delack_min to 0 completely eliminated the undesired
latencies, though of course that would be a bit dangerous with naive apps
talking across the network. Changing tcp_ato_min didn't do anything interesting
for this case.
The problem is that we're trying to use one set of values for links with
extremely different performance characteristics. We need to initialize TCP
sockets with min/default/max values that are safe and perform well.
How horrendous of a layering violation would it be to attach TCP performance
parameters (either user-supplied or based on interface stats) to route table
entries, like route metrics but intended to guide TCP autotuning? It seems like
it shouldn't be that hard to teach TCP that it doesn't need to optimize my lo
connections much, and that it should be optimizing my eth0 subnet connections
for lower latency and higher bandwidth than the connections that go through my
gateway into the great beyond.
As long as we have hardcoded minimum delays > 10ms, I don't think there's much
of a point, but it's something to keep in mind for the future.
-- Chris
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html