OSDN Git Service

tcp: remove CA_ACK_SLOWPATH
authorFlorian Westphal <fw@strlen.de>
Sun, 30 Jul 2017 01:57:22 +0000 (03:57 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 31 Jul 2017 21:37:50 +0000 (14:37 -0700)
re-indent tcp_ack, and remove CA_ACK_SLOWPATH; it is always set now.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_westwood.c

index 8f11b82..3ecb628 100644 (file)
@@ -880,9 +880,8 @@ enum tcp_ca_event {
 
 /* Information about inbound ACK, passed to cong_ops->in_ack_event() */
 enum tcp_ca_ack_event_flags {
-       CA_ACK_SLOWPATH         = (1 << 0),     /* In slow path processing */
-       CA_ACK_WIN_UPDATE       = (1 << 1),     /* ACK updated window */
-       CA_ACK_ECE              = (1 << 2),     /* ECE bit is set on ack */
+       CA_ACK_WIN_UPDATE       = (1 << 0),     /* ACK updated window */
+       CA_ACK_ECE              = (1 << 1),     /* ECE bit is set on ack */
 };
 
 /*
index bfde9d7..af0a98d 100644 (file)
@@ -3547,6 +3547,7 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
        u32 lost = tp->lost;
        int acked = 0; /* Number of packets newly acked */
        int rexmit = REXMIT_NONE; /* Flag to (re)transmit to recover losses */
+       u32 ack_ev_flags = 0;
 
        sack_state.first_sackt = 0;
        sack_state.rate = &rs;
@@ -3590,30 +3591,26 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
        if (flag & FLAG_UPDATE_TS_RECENT)
                tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq);
 
-       {
-               u32 ack_ev_flags = CA_ACK_SLOWPATH;
-
-               if (ack_seq != TCP_SKB_CB(skb)->end_seq)
-                       flag |= FLAG_DATA;
-               else
-                       NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPPUREACKS);
+       if (ack_seq != TCP_SKB_CB(skb)->end_seq)
+               flag |= FLAG_DATA;
+       else
+               NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPPUREACKS);
 
-               flag |= tcp_ack_update_window(sk, skb, ack, ack_seq);
+       flag |= tcp_ack_update_window(sk, skb, ack, ack_seq);
 
-               if (TCP_SKB_CB(skb)->sacked)
-                       flag |= tcp_sacktag_write_queue(sk, skb, prior_snd_una,
-                                                       &sack_state);
+       if (TCP_SKB_CB(skb)->sacked)
+               flag |= tcp_sacktag_write_queue(sk, skb, prior_snd_una,
+                                               &sack_state);
 
-               if (tcp_ecn_rcv_ecn_echo(tp, tcp_hdr(skb))) {
-                       flag |= FLAG_ECE;
-                       ack_ev_flags |= CA_ACK_ECE;
-               }
+       if (tcp_ecn_rcv_ecn_echo(tp, tcp_hdr(skb))) {
+               flag |= FLAG_ECE;
+               ack_ev_flags = CA_ACK_ECE;
+       }
 
-               if (flag & FLAG_WIN_UPDATE)
-                       ack_ev_flags |= CA_ACK_WIN_UPDATE;
+       if (flag & FLAG_WIN_UPDATE)
+               ack_ev_flags |= CA_ACK_WIN_UPDATE;
 
-               tcp_in_ack_event(sk, ack_ev_flags);
-       }
+       tcp_in_ack_event(sk, ack_ev_flags);
 
        /* We passed data and got it acked, remove any soft error
         * log. Something worked...
index bec9caf..e5de843 100644 (file)
@@ -154,24 +154,6 @@ static inline void update_rtt_min(struct westwood *w)
 }
 
 /*
- * @westwood_fast_bw
- * It is called when we are in fast path. In particular it is called when
- * header prediction is successful. In such case in fact update is
- * straight forward and doesn't need any particular care.
- */
-static inline void westwood_fast_bw(struct sock *sk)
-{
-       const struct tcp_sock *tp = tcp_sk(sk);
-       struct westwood *w = inet_csk_ca(sk);
-
-       westwood_update_window(sk);
-
-       w->bk += tp->snd_una - w->snd_una;
-       w->snd_una = tp->snd_una;
-       update_rtt_min(w);
-}
-
-/*
  * @westwood_acked_count
  * This function evaluates cumul_ack for evaluating bk in case of
  * delayed or partial acks.
@@ -223,17 +205,12 @@ static u32 tcp_westwood_bw_rttmin(const struct sock *sk)
 
 static void tcp_westwood_ack(struct sock *sk, u32 ack_flags)
 {
-       if (ack_flags & CA_ACK_SLOWPATH) {
-               struct westwood *w = inet_csk_ca(sk);
-
-               westwood_update_window(sk);
-               w->bk += westwood_acked_count(sk);
+       struct westwood *w = inet_csk_ca(sk);
 
-               update_rtt_min(w);
-               return;
-       }
+       westwood_update_window(sk);
+       w->bk += westwood_acked_count(sk);
 
-       westwood_fast_bw(sk);
+       update_rtt_min(w);
 }
 
 static void tcp_westwood_event(struct sock *sk, enum tcp_ca_event event)