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: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
75eefc6c59
commit
12a59abc22
|
@ -1932,26 +1932,26 @@ static inline void tcp_mtu_check_reprobe(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 tcp_sock *tp = tcp_sk(sk);
|
||||
struct sk_buff *skb, *nskb, *next;
|
||||
struct net *net = sock_net(sk);
|
||||
int len;
|
||||
int probe_size;
|
||||
int size_needed;
|
||||
int copy;
|
||||
int copy, len;
|
||||
int mss_now;
|
||||
int interval;
|
||||
|
||||
/* Not currently probing/verifying,
|
||||
* not in recovery,
|
||||
* have enough cwnd, and
|
||||
* not SACKing (the variable headers throw things off) */
|
||||
if (!icsk->icsk_mtup.enabled ||
|
||||
icsk->icsk_mtup.probe_size ||
|
||||
inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
|
||||
tp->snd_cwnd < 11 ||
|
||||
tp->rx_opt.num_sacks || tp->rx_opt.dsack)
|
||||
* not SACKing (the variable headers throw things off)
|
||||
*/
|
||||
if (likely(!icsk->icsk_mtup.enabled ||
|
||||
icsk->icsk_mtup.probe_size ||
|
||||
inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
|
||||
tp->snd_cwnd < 11 ||
|
||||
tp->rx_opt.num_sacks || tp->rx_opt.dsack))
|
||||
return -1;
|
||||
|
||||
/* Use binary search for probe_size between tcp_mss_base,
|
||||
|
|
Loading…
Reference in New Issue