mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
inet: move ipv6only in sock_common
When an UDP application switches from AF_INET to AF_INET6 sockets, we have a small performance degradation for IPv4 communications because of extra cache line misses to access ipv6only information. This can also be noticed for TCP listeners, as ipv6_only_sock() is also used from __inet_lookup_listener()->compute_score() This is magnified when SO_REUSEPORT is used. Move ipv6only into struct sock_common so that it is available at no extra cost in lookups. Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
090cce4263
commit
9fe516ba3f
8 changed files with 18 additions and 18 deletions
|
|
@ -55,11 +55,9 @@ void dccp_time_wait(struct sock *sk, int state, int timeo)
|
|||
const int rto = (icsk->icsk_rto << 2) - (icsk->icsk_rto >> 1);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
if (tw->tw_family == PF_INET6) {
|
||||
const struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
|
||||
tw->tw_v6_daddr = sk->sk_v6_daddr;
|
||||
tw->tw_v6_rcv_saddr = sk->sk_v6_rcv_saddr;
|
||||
tw->tw_ipv6only = np->ipv6only;
|
||||
tw->tw_ipv6only = sk->sk_ipv6only;
|
||||
}
|
||||
#endif
|
||||
/* Linkage updates. */
|
||||
|
|
|
|||
Loading…
Reference in a new issue