On Sun, 2013-01-06 at 03:52 +0100, Willy Tarreau wrote: > OK so I observed no change with this patch, either on the loopback > data rate at >16kB MTU, or on the myri. I'm keeping it at hand for > experimentation anyway. >
Yeah, there was no bug. I rewrote it for net-next as a cleanup/optim only. > Concerning the loopback MTU, I find it strange that the MTU changes > the splice() behaviour and not send/recv. I thought that there could > be a relation between the MTU and the pipe size, but it does not > appear to be the case either, as I tried various sizes between 16kB > and 256kB without achieving original performance. It probably is related to a too small receive window, given the MTU was multiplied by 4, I guess we need to make some adjustments You also could try : diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 1ca2536..b68cdfb 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1482,6 +1482,9 @@ int tcp_read_sock(struct sock *sk, read_descriptor_t *desc, break; } used = recv_actor(desc, skb, offset, len); + /* Clean up data we have read: This will do ACK frames. */ + if (used > 0) + tcp_cleanup_rbuf(sk, used); if (used < 0) { if (!copied) copied = used; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/