forked from Minki/linux
tcp: use tcp_jiffies32 to feed tp->lsndtime
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>
This commit is contained in:
parent
d011b9a448
commit
d635fbe27e
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user