Commit 12a59abc authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

tcp: tcp_mtu_probe() is likely to exit early

Adding a likely() in tcp_mtu_probe() moves its code which used to
be inlined in front of tcp_write_xmit()

We still have a cache line miss to access icsk->icsk_mtup.enabled,
we will probably have to reorganize fields to help data locality.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 75eefc6c
...@@ -1932,26 +1932,26 @@ static inline void tcp_mtu_check_reprobe(struct sock *sk) ...@@ -1932,26 +1932,26 @@ static inline void tcp_mtu_check_reprobe(struct sock *sk)
*/ */
static int tcp_mtu_probe(struct sock *sk) static int tcp_mtu_probe(struct sock *sk)
{ {
struct tcp_sock *tp = tcp_sk(sk);
struct inet_connection_sock *icsk = inet_csk(sk); struct inet_connection_sock *icsk = inet_csk(sk);
struct tcp_sock *tp = tcp_sk(sk);
struct sk_buff *skb, *nskb, *next; struct sk_buff *skb, *nskb, *next;
struct net *net = sock_net(sk); struct net *net = sock_net(sk);
int len;
int probe_size; int probe_size;
int size_needed; int size_needed;
int copy; int copy, len;
int mss_now; int mss_now;
int interval; int interval;
/* Not currently probing/verifying, /* Not currently probing/verifying,
* not in recovery, * not in recovery,
* have enough cwnd, and * have enough cwnd, and
* not SACKing (the variable headers throw things off) */ * not SACKing (the variable headers throw things off)
if (!icsk->icsk_mtup.enabled || */
if (likely(!icsk->icsk_mtup.enabled ||
icsk->icsk_mtup.probe_size || icsk->icsk_mtup.probe_size ||
inet_csk(sk)->icsk_ca_state != TCP_CA_Open || inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
tp->snd_cwnd < 11 || tp->snd_cwnd < 11 ||
tp->rx_opt.num_sacks || tp->rx_opt.dsack) tp->rx_opt.num_sacks || tp->rx_opt.dsack))
return -1; return -1;
/* Use binary search for probe_size between tcp_mss_base, /* Use binary search for probe_size between tcp_mss_base,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment