linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Rothwell <sfr@canb.auug.org.au>
To: David Miller <davem@davemloft.net>, <netdev@vger.kernel.org>
Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
	Eric Dumazet <edumazet@google.com>,
	Nandita Dukkipati <nanditad@google.com>
Subject: linux-next: manual merge of the net-next tree with Linus' tree
Date: Mon, 22 Apr 2013 13:03:24 +1000	[thread overview]
Message-ID: <20130422130324.43b4521c6b4719ed7a96ef00@canb.auug.org.au> (raw)

[-- Attachment #1: Type: text/plain, Size: 3378 bytes --]

Hi all,

Today's linux-next merge of the net-next tree got a conflict in
net/ipv4/tcp_input.c between commit 12fb3dd9dc3c ("tcp: call
tcp_replace_ts_recent() from tcp_ack()") from Linus' tree and commit
9b717a8d2450 ("tcp: TLP loss detection") from the net-next tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc net/ipv4/tcp_input.c
index 13b9c08,6d9ca35..0000000
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@@ -108,12 -107,10 +107,11 @@@ int sysctl_tcp_early_retrans __read_mos
  #define FLAG_DATA_SACKED	0x20 /* New SACK.				*/
  #define FLAG_ECE		0x40 /* ECE in this ACK				*/
  #define FLAG_SLOWPATH		0x100 /* Do not skip RFC checks for window update.*/
- #define FLAG_ONLY_ORIG_SACKED	0x200 /* SACKs only non-rexmit sent before RTO */
+ #define FLAG_ORIG_SACK_ACKED	0x200 /* Never retransmitted data are (s)acked	*/
  #define FLAG_SND_UNA_ADVANCED	0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
  #define FLAG_DSACKING_ACK	0x800 /* SACK blocks contained D-SACK info */
- #define FLAG_NONHEAD_RETRANS_ACKED	0x1000 /* Non-head rexmitted data was ACKed */
  #define FLAG_SACK_RENEGING	0x2000 /* snd_una advanced to a sacked seq */
 +#define FLAG_UPDATE_TS_RECENT	0x4000 /* tcp_replace_ts_recent() */
  
  #define FLAG_ACKED		(FLAG_DATA_ACKED|FLAG_SYN_ACKED)
  #define FLAG_NOT_DUP		(FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED)
@@@ -3565,27 -3265,38 +3266,59 @@@ static void tcp_send_challenge_ack(stru
  	}
  }
  
 +static void tcp_store_ts_recent(struct tcp_sock *tp)
 +{
 +	tp->rx_opt.ts_recent = tp->rx_opt.rcv_tsval;
 +	tp->rx_opt.ts_recent_stamp = get_seconds();
 +}
 +
 +static void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq)
 +{
 +	if (tp->rx_opt.saw_tstamp && !after(seq, tp->rcv_wup)) {
 +		/* PAWS bug workaround wrt. ACK frames, the PAWS discard
 +		 * extra check below makes sure this can only happen
 +		 * for pure ACK frames.  -DaveM
 +		 *
 +		 * Not only, also it occurs for expired timestamps.
 +		 */
 +
 +		if (tcp_paws_check(&tp->rx_opt, 0))
 +			tcp_store_ts_recent(tp);
 +	}
 +}
 +
+ /* This routine deals with acks during a TLP episode.
+  * Ref: loss detection algorithm in draft-dukkipati-tcpm-tcp-loss-probe.
+  */
+ static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
+ {
+ 	struct tcp_sock *tp = tcp_sk(sk);
+ 	bool is_tlp_dupack = (ack == tp->tlp_high_seq) &&
+ 			     !(flag & (FLAG_SND_UNA_ADVANCED |
+ 				       FLAG_NOT_DUP | FLAG_DATA_SACKED));
+ 
+ 	/* Mark the end of TLP episode on receiving TLP dupack or when
+ 	 * ack is after tlp_high_seq.
+ 	 */
+ 	if (is_tlp_dupack) {
+ 		tp->tlp_high_seq = 0;
+ 		return;
+ 	}
+ 
+ 	if (after(ack, tp->tlp_high_seq)) {
+ 		tp->tlp_high_seq = 0;
+ 		/* Don't reduce cwnd if DSACK arrives for TLP retrans. */
+ 		if (!(flag & FLAG_DSACKING_ACK)) {
+ 			tcp_init_cwnd_reduction(sk, true);
+ 			tcp_set_ca_state(sk, TCP_CA_CWR);
+ 			tcp_end_cwnd_reduction(sk);
+ 			tcp_set_ca_state(sk, TCP_CA_Open);
+ 			NET_INC_STATS_BH(sock_net(sk),
+ 					 LINUX_MIB_TCPLOSSPROBERECOVERY);
+ 		}
+ 	}
+ }
+ 
  /* This routine deals with incoming acks, but not outgoing ones. */
  static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
  {

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

             reply	other threads:[~2013-04-22  3:03 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-22  3:03 Stephen Rothwell [this message]
2013-04-23  0:41 ` linux-next: manual merge of the net-next tree with Linus' tree David Miller
  -- strict thread matches above, loose matches on Subject: below --
2023-12-14 23:52 Stephen Rothwell
2023-02-16 23:40 Stephen Rothwell
2023-02-16 23:18 Stephen Rothwell
2022-10-27 23:28 Stephen Rothwell
2022-10-28  6:53 ` Marc Kleine-Budde
2022-09-21  1:00 Stephen Rothwell
2022-09-21  4:40 ` Colin Foster
2022-07-15  2:01 Stephen Rothwell
2022-07-15  1:48 Stephen Rothwell
2021-07-23  2:32 Stephen Rothwell
2021-01-29  0:59 Stephen Rothwell
2021-01-29  0:48 Stephen Rothwell
2021-01-29  0:43 Stephen Rothwell
2019-10-21  0:07 Stephen Rothwell
2019-09-15 20:31 Mark Brown
2019-09-15 20:24 Mark Brown
2019-06-17  1:44 Stephen Rothwell
2019-06-04  0:30 Stephen Rothwell
2019-06-04  0:29 Stephen Rothwell
2019-04-02 22:56 Stephen Rothwell
2018-07-20  1:49 Stephen Rothwell
2018-06-06  4:37 Stephen Rothwell
2017-12-04 22:59 Stephen Rothwell
2017-11-09 23:31 Stephen Rothwell
2017-11-10  4:37 ` Cong Wang
2017-11-10  4:39 ` David Miller
2017-10-30 17:24 Mark Brown
2017-10-30 17:08 Mark Brown
2017-10-30 17:02 Mark Brown
2017-10-30 17:43 ` Jakub Kicinski
2017-10-30 18:10   ` Mark Brown
2017-06-30  0:57 Stephen Rothwell
2017-05-03  1:07 Stephen Rothwell
2017-05-03  4:08 ` David Miller
2017-03-24  0:05 Stephen Rothwell
2017-03-24  0:10 ` David Miller
2017-03-24  1:24   ` Alexei Starovoitov
2017-02-02  1:49 Stephen Rothwell
2017-02-02  8:40 ` Yotam Gigi
2016-10-02 22:37 Stephen Rothwell
2016-10-02 22:32 Stephen Rothwell
2016-06-30  1:01 Stephen Rothwell
2016-05-03  3:15 Stephen Rothwell
2016-03-15  0:07 Stephen Rothwell
2016-03-15  8:53 ` Gregory CLEMENT
2015-07-14  1:46 Stephen Rothwell
2015-07-14  8:23 ` Nikolay Aleksandrov
2015-05-28  4:17 Stephen Rothwell
2015-05-28 13:34 ` Tom Lendacky
2015-02-12  1:05 Stephen Rothwell
2014-06-12  2:01 Stephen Rothwell
2014-06-05  3:13 Stephen Rothwell
2014-06-05  3:26 ` KY Srinivasan
2013-12-18  1:46 Stephen Rothwell
2013-12-18  1:56 ` Jeff Kirsher
2013-12-18  2:19   ` Stephen Rothwell
2013-09-05  5:23 Stephen Rothwell
2013-09-05  5:19 Stephen Rothwell
2013-09-05  7:33 ` Daniel Borkmann
2013-09-02  3:12 Stephen Rothwell
2013-06-17  2:44 Stephen Rothwell
2013-06-17  2:38 Stephen Rothwell
2013-04-22  3:09 Stephen Rothwell
2013-04-23  0:42 ` David Miller
2013-04-22  2:48 Stephen Rothwell
2013-04-22  2:43 Stephen Rothwell
2013-04-23  0:41 ` David Miller
2013-03-27  0:57 Stephen Rothwell
2013-03-27  4:54 ` David Miller
2013-03-12  0:33 Stephen Rothwell
2013-03-12 10:49 ` David Miller
2012-11-08 23:53 Stephen Rothwell
2012-11-10 23:34 ` David Miller
2012-10-02  1:51 Stephen Rothwell
2012-09-26  1:46 Stephen Rothwell
2012-07-19  1:15 Stephen Rothwell
2012-07-19  1:18 ` Jeff Kirsher
2012-02-27  1:11 Stephen Rothwell
2012-02-27  4:05 ` David Miller
2012-02-29  3:21   ` Ben Hutchings

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130422130324.43b4521c6b4719ed7a96ef00@canb.auug.org.au \
    --to=sfr@canb.auug.org.au \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=nanditad@google.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).