Messages in this thread Patch in this message |  | | Subject | Re: Major network performance regression in 3.7 | From | Eric Dumazet <> | Date | Sat, 05 Jan 2013 23:35:24 -0800 |
| |
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;
|  |