aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorWei Wang <weiwan@google.com>2019-01-25 13:53:19 -0500
committerDavid S. Miller <davem@davemloft.net>2019-01-27 16:29:43 -0500
commit31954cd8bb667030b1c0d3d77f28fe71f06999f9 (patch)
treef00b43f2669ac70db625d8babe06e89cd0a731e2 /net/ipv4/tcp_output.c
parentfb1b69999130e9800c4e341a2b0f0991cdd8fcfc (diff)
tcp: Refactor pingpong code
Instead of using pingpong as a single bit information, we refactor the code to treat it as a counter. When interactive session is detected, we set pingpong count to TCP_PINGPONG_THRESH. And when pingpong count is >= TCP_PINGPONG_THRESH, we consider the session in pingpong mode. This patch is a pure refactor and sets foundation for the next patch. This patch itself does not change any pingpong logic. Signed-off-by: Wei Wang <weiwan@google.com> Signed-off-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 26a2948dca95..06228e2d010e 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -171,7 +171,7 @@ static void tcp_event_data_sent(struct tcp_sock *tp,
171 * packet, enter pingpong mode. 171 * packet, enter pingpong mode.
172 */ 172 */
173 if ((u32)(now - icsk->icsk_ack.lrcvtime) < icsk->icsk_ack.ato) 173 if ((u32)(now - icsk->icsk_ack.lrcvtime) < icsk->icsk_ack.ato)
174 icsk->icsk_ack.pingpong = 1; 174 inet_csk_enter_pingpong_mode(sk);
175} 175}
176 176
177/* Account for an ACK we sent. */ 177/* Account for an ACK we sent. */
@@ -3569,7 +3569,7 @@ void tcp_send_delayed_ack(struct sock *sk)
3569 const struct tcp_sock *tp = tcp_sk(sk); 3569 const struct tcp_sock *tp = tcp_sk(sk);
3570 int max_ato = HZ / 2; 3570 int max_ato = HZ / 2;
3571 3571
3572 if (icsk->icsk_ack.pingpong || 3572 if (inet_csk_in_pingpong_mode(sk) ||
3573 (icsk->icsk_ack.pending & ICSK_ACK_PUSHED)) 3573 (icsk->icsk_ack.pending & ICSK_ACK_PUSHED))
3574 max_ato = TCP_DELACK_MAX; 3574 max_ato = TCP_DELACK_MAX;
3575 3575