aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_timer.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2017-05-16 17:00:00 -0400
committerDavid S. Miller <davem@davemloft.net>2017-05-17 16:06:01 -0400
commit385e20706facd376f27863bd55b7cc7720d3f27b (patch)
treeb3e6e53158d3348cd6d6b7b473adfe2f1c5a8d6c /net/ipv4/tcp_timer.c
parent9d4f97f97bb8adc47f569d995402c33de9a4fa19 (diff)
tcp: use tp->tcp_mstamp in output path
Idea is to later convert tp->tcp_mstamp to a full u64 counter using usec resolution, so that we can later have fine grained TCP TS clock (RFC 7323), regardless of HZ value. We try to refresh tp->tcp_mstamp only when necessary. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_timer.c')
-rw-r--r--net/ipv4/tcp_timer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
index 86934bcf685a..ec7c5473c788 100644
--- a/net/ipv4/tcp_timer.c
+++ b/net/ipv4/tcp_timer.c
@@ -339,7 +339,7 @@ static void tcp_probe_timer(struct sock *sk)
339 */ 339 */
340 start_ts = tcp_skb_timestamp(tcp_send_head(sk)); 340 start_ts = tcp_skb_timestamp(tcp_send_head(sk));
341 if (!start_ts) 341 if (!start_ts)
342 skb_mstamp_get(&tcp_send_head(sk)->skb_mstamp); 342 tcp_send_head(sk)->skb_mstamp = tp->tcp_mstamp;
343 else if (icsk->icsk_user_timeout && 343 else if (icsk->icsk_user_timeout &&
344 (s32)(tcp_time_stamp - start_ts) > icsk->icsk_user_timeout) 344 (s32)(tcp_time_stamp - start_ts) > icsk->icsk_user_timeout)
345 goto abort; 345 goto abort;
@@ -561,6 +561,7 @@ void tcp_write_timer_handler(struct sock *sk)
561 goto out; 561 goto out;
562 } 562 }
563 563
564 skb_mstamp_get(&tcp_sk(sk)->tcp_mstamp);
564 event = icsk->icsk_pending; 565 event = icsk->icsk_pending;
565 566
566 switch (event) { 567 switch (event) {