Yup... Not sure which TCP oddity you are talking about, but my experience
is that user programs need timely execution to get best TCP performance.
If userspace doesn't get to run quickly enough, it is easy to trigger
delayed acks by not getting data out of the operating system fast enough
(at least with the BSD TCP implementation). This can cause really poor
performance. We ran into this one in our HTTP/1.1 implementation, where,
since we were doing much more work on a single TCP connection, we found
it was essential to become very agressive in our user space code at getting
data out of the socket buffers (or we'd end up with delayed acks). In
HTTP/1.0 using multiple TCP connections this was rarely a problem, but
became essential to get things to really fly using HTTP/1.1.
- Jim Gettys
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/