]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
tcp: use tcp_jiffies32 to feed tp->lsndtime
authorEric Dumazet <edumazet@google.com>
Tue, 16 May 2017 21:00:03 +0000 (14:00 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 May 2017 20:06:01 +0000 (16:06 -0400)
Use tcp_jiffies32 instead of tcp_time_stamp to feed
tp->lsndtime.

tcp_time_stamp will soon be a litle bit more expensive
than simply reading 'jiffies'.

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>
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_cubic.c
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c
net/ipv4/tcp_timer.c

index 4b45be5708215bae4551a5430b63ab2777baf447..feba4c0406e551d7e57da3411476735731b4d817 100644 (file)
@@ -1245,7 +1245,7 @@ static inline void tcp_slow_start_after_idle_check(struct sock *sk)
        if (!sysctl_tcp_slow_start_after_idle || tp->packets_out ||
            ca_ops->cong_control)
                return;
-       delta = tcp_time_stamp - tp->lsndtime;
+       delta = tcp_jiffies32 - tp->lsndtime;
        if (delta > inet_csk(sk)->icsk_rto)
                tcp_cwnd_restart(sk, delta);
 }
index 1e4c76d2b8278ba71d6cc2cf7ebfe483e241f76e..d0bb61ee28bbceff8f2e27416ce87fec94935973 100644 (file)
@@ -2841,7 +2841,7 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
        info->tcpi_retrans = tp->retrans_out;
        info->tcpi_fackets = tp->fackets_out;
 
-       now = tcp_time_stamp;
+       now = tcp_jiffies32;
        info->tcpi_last_data_sent = jiffies_to_msecs(now - tp->lsndtime);
        info->tcpi_last_data_recv = jiffies_to_msecs(now - icsk->icsk_ack.lrcvtime);
        info->tcpi_last_ack_recv = jiffies_to_msecs(now - tp->rcv_tstamp);
index 0683ba447d775b6101a929a6aca3eb255cff8932..2052ca740916d0872a41125ab61b769b334a314b 100644 (file)
@@ -155,7 +155,7 @@ static void bictcp_cwnd_event(struct sock *sk, enum tcp_ca_event event)
 {
        if (event == CA_EVENT_TX_START) {
                struct bictcp *ca = inet_csk_ca(sk);
-               u32 now = tcp_time_stamp;
+               u32 now = tcp_jiffies32;
                s32 delta;
 
                delta = now - tcp_sk(sk)->lsndtime;
index 06e2dbc2b4a212a054fd88e57bb902c55a171b11..c0b3f909df394214785749704f2760171fe9d160 100644 (file)
@@ -5571,7 +5571,7 @@ void tcp_finish_connect(struct sock *sk, struct sk_buff *skb)
        /* Prevent spurious tcp_cwnd_restart() on first data
         * packet.
         */
-       tp->lsndtime = tcp_time_stamp;
+       tp->lsndtime = tcp_jiffies32;
 
        tcp_init_buffer_space(sk);
 
@@ -6008,7 +6008,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb)
                        tcp_update_pacing_rate(sk);
 
                /* Prevent spurious tcp_cwnd_restart() on first data packet */
-               tp->lsndtime = tcp_time_stamp;
+               tp->lsndtime = tcp_jiffies32;
 
                tcp_initialize_rcv_mss(sk);
                tcp_fast_path_on(tp);
index 4c8a6eaba6b39a2aea061dd6857ed8df954c5ca2..be9f8f483e21bdbb4d944fcdae8560f3ae11ee64 100644 (file)
@@ -160,7 +160,7 @@ static void tcp_event_data_sent(struct tcp_sock *tp,
                                struct sock *sk)
 {
        struct inet_connection_sock *icsk = inet_csk(sk);
-       const u32 now = tcp_time_stamp;
+       const u32 now = tcp_jiffies32;
 
        if (tcp_packets_in_flight(tp) == 0)
                tcp_ca_event(sk, CA_EVENT_TX_START);
@@ -1918,7 +1918,7 @@ static bool tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb,
        /* Avoid bursty behavior by allowing defer
         * only if the last write was recent.
         */
-       if ((s32)(tcp_time_stamp - tp->lsndtime) > 0)
+       if ((s32)(tcp_jiffies32 - tp->lsndtime) > 0)
                goto send_now;
 
        in_flight = tcp_packets_in_flight(tp);
index ec7c5473c788d77ae459b38492f2f2606d00d1ba..5f6f219a431e41a90b3c5d667a1a22b50f4464cf 100644 (file)
@@ -63,7 +63,7 @@ static int tcp_out_of_resources(struct sock *sk, bool do_reset)
 
        /* If peer does not open window for long time, or did not transmit
         * anything for long time, penalize it. */
-       if ((s32)(tcp_time_stamp - tp->lsndtime) > 2*TCP_RTO_MAX || !do_reset)
+       if ((s32)(tcp_jiffies32 - tp->lsndtime) > 2*TCP_RTO_MAX || !do_reset)
                shift++;
 
        /* If some dubious ICMP arrived, penalize even more. */
@@ -73,7 +73,7 @@ static int tcp_out_of_resources(struct sock *sk, bool do_reset)
        if (tcp_check_oom(sk, shift)) {
                /* Catch exceptional cases, when connection requires reset.
                 *      1. Last segment was sent recently. */
-               if ((s32)(tcp_time_stamp - tp->lsndtime) <= TCP_TIMEWAIT_LEN ||
+               if ((s32)(tcp_jiffies32 - tp->lsndtime) <= TCP_TIMEWAIT_LEN ||
                    /*  2. Window is closed. */
                    (!tp->snd_wnd && !tp->packets_out))
                        do_reset = true;