[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADVnQynZxphzi37PD6GRV6k=tgjHfH2HuL7GiGVjOSMOCLSOcA@mail.gmail.com>
Date: Mon, 27 Jun 2016 09:12:57 -0400
From: Neal Cardwell <ncardwell@...gle.com>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: Arjun V <arjun@...lsio.com>, Eric Dumazet <edumazet@...gle.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Hariprasad S <hariprasad@...lsio.com>,
Casey Leedom <leedom@...lsio.com>,
Kumar A S <kumaras@...lsio.com>,
Santosh Rastapur <santosh@...lsio.com>,
Nirranjan Kirubaharan <nirranjan@...lsio.com>,
"davem@...emloft.net" <davem@...emloft.net>,
"ycheng@...gle.com" <ycheng@...gle.com>
Subject: Re: [REGRESSION, bisect]cxgb4 port failure with TSO traffic after
commit 10d3be569243def8("tcp-tso: do not split TSO packets at retransmit time")
On Mon, Jun 27, 2016 at 8:46 AM, Eric Dumazet <eric.dumazet@...il.com> wrote:
> Patch would be :
>
> diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
> index 8bd9911fdd16..3587efe22864 100644
> --- a/net/ipv4/tcp_output.c
> +++ b/net/ipv4/tcp_output.c
> @@ -2784,6 +2784,10 @@ void tcp_xmit_retransmit_queue(struct sock *sk)
> segs = tp->snd_cwnd - tcp_packets_in_flight(tp);
> if (segs <= 0)
> return;
> + /* In case tcp_shift_skb_data() have aggregated large skbs,
> + * we need to make sure not sending too big TSO packets.
> + */
> + segs = min_t(int, segs, tp->gso_segs);
>
> if (fwd_rexmitting) {
> begin_fwd:
Nice catch, Eric. What do you think about using tcp_tso_autosize()
instead of tp->gso_segs? The goal would be to get autosized skbs in
this case, instead of 64KByte skbs. In addition to helping this corner
case of SACK reneging, this might also help things in general, since
if we are retransmitting packets then the cwnd and hence pacing rate
and hence autosized skb length might be smaller now than they were
when the packets were first sent. Just a thought.
neal
Powered by blists - more mailing lists