提交 d635fbe2 编写于 作者: E Eric Dumazet 提交者: David S. Miller

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: NEric Dumazet <edumazet@google.com>
Acked-by: NSoheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 d011b9a4
...@@ -1245,7 +1245,7 @@ static inline void tcp_slow_start_after_idle_check(struct sock *sk) ...@@ -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 || if (!sysctl_tcp_slow_start_after_idle || tp->packets_out ||
ca_ops->cong_control) ca_ops->cong_control)
return; return;
delta = tcp_time_stamp - tp->lsndtime; delta = tcp_jiffies32 - tp->lsndtime;
if (delta > inet_csk(sk)->icsk_rto) if (delta > inet_csk(sk)->icsk_rto)
tcp_cwnd_restart(sk, delta); tcp_cwnd_restart(sk, delta);
} }
......
...@@ -2841,7 +2841,7 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info) ...@@ -2841,7 +2841,7 @@ void tcp_get_info(struct sock *sk, struct tcp_info *info)
info->tcpi_retrans = tp->retrans_out; info->tcpi_retrans = tp->retrans_out;
info->tcpi_fackets = tp->fackets_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_sent = jiffies_to_msecs(now - tp->lsndtime);
info->tcpi_last_data_recv = jiffies_to_msecs(now - icsk->icsk_ack.lrcvtime); 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); 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) ...@@ -155,7 +155,7 @@ static void bictcp_cwnd_event(struct sock *sk, enum tcp_ca_event event)
{ {
if (event == CA_EVENT_TX_START) { if (event == CA_EVENT_TX_START) {
struct bictcp *ca = inet_csk_ca(sk); struct bictcp *ca = inet_csk_ca(sk);
u32 now = tcp_time_stamp; u32 now = tcp_jiffies32;
s32 delta; s32 delta;
delta = now - tcp_sk(sk)->lsndtime; delta = now - tcp_sk(sk)->lsndtime;
......
...@@ -5571,7 +5571,7 @@ void tcp_finish_connect(struct sock *sk, struct sk_buff *skb) ...@@ -5571,7 +5571,7 @@ void tcp_finish_connect(struct sock *sk, struct sk_buff *skb)
/* Prevent spurious tcp_cwnd_restart() on first data /* Prevent spurious tcp_cwnd_restart() on first data
* packet. * packet.
*/ */
tp->lsndtime = tcp_time_stamp; tp->lsndtime = tcp_jiffies32;
tcp_init_buffer_space(sk); tcp_init_buffer_space(sk);
...@@ -6008,7 +6008,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb) ...@@ -6008,7 +6008,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb)
tcp_update_pacing_rate(sk); tcp_update_pacing_rate(sk);
/* Prevent spurious tcp_cwnd_restart() on first data packet */ /* Prevent spurious tcp_cwnd_restart() on first data packet */
tp->lsndtime = tcp_time_stamp; tp->lsndtime = tcp_jiffies32;
tcp_initialize_rcv_mss(sk); tcp_initialize_rcv_mss(sk);
tcp_fast_path_on(tp); tcp_fast_path_on(tp);
......
...@@ -160,7 +160,7 @@ static void tcp_event_data_sent(struct tcp_sock *tp, ...@@ -160,7 +160,7 @@ static void tcp_event_data_sent(struct tcp_sock *tp,
struct sock *sk) struct sock *sk)
{ {
struct inet_connection_sock *icsk = inet_csk(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) if (tcp_packets_in_flight(tp) == 0)
tcp_ca_event(sk, CA_EVENT_TX_START); 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, ...@@ -1918,7 +1918,7 @@ static bool tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb,
/* Avoid bursty behavior by allowing defer /* Avoid bursty behavior by allowing defer
* only if the last write was recent. * 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; goto send_now;
in_flight = tcp_packets_in_flight(tp); in_flight = tcp_packets_in_flight(tp);
......
...@@ -63,7 +63,7 @@ static int tcp_out_of_resources(struct sock *sk, bool do_reset) ...@@ -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 /* If peer does not open window for long time, or did not transmit
* anything for long time, penalize it. */ * 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++; shift++;
/* If some dubious ICMP arrived, penalize even more. */ /* If some dubious ICMP arrived, penalize even more. */
...@@ -73,7 +73,7 @@ static int tcp_out_of_resources(struct sock *sk, bool do_reset) ...@@ -73,7 +73,7 @@ static int tcp_out_of_resources(struct sock *sk, bool do_reset)
if (tcp_check_oom(sk, shift)) { if (tcp_check_oom(sk, shift)) {
/* Catch exceptional cases, when connection requires reset. /* Catch exceptional cases, when connection requires reset.
* 1. Last segment was sent recently. */ * 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. */ /* 2. Window is closed. */
(!tp->snd_wnd && !tp->packets_out)) (!tp->snd_wnd && !tp->packets_out))
do_reset = true; do_reset = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册