[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1337291410.3403.52.camel@edumazet-glaptop>
Date: Thu, 17 May 2012 23:50:10 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Willy Tarreau <w@....eu>
Cc: netdev@...r.kernel.org
Subject: Re: Stable regression with 'tcp: allow splice() to build full TSO
packets'
On Thu, 2012-05-17 at 23:40 +0200, Eric Dumazet wrote:
> I dont understand why we should tcp_push() if we sent 0 bytes in this
> splice() call.
>
> The push() should have be done already by prior splice() call, dont you
> think ?
>
> out:
> if (copied && !(flags & MSG_SENDPAGE_NOTLAST))
> tcp_push(sk, flags, mss_now, tp->nonagle);
>
I think I now understand
One splice() syscall actually calls do_tcp_sendpages() several times
(N).
Problem is N-1 calls are done with MSG_SENDPAGE_NOTLAST set
And last one with MSG_SENDPAGE_NOTLAST unset
So maybe we should replace this test by :
if (!(flags & MSG_SENDPAGE_NOTLAST))
tcp_push(...);
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists