inet: rename some inet_sock fields
In order to have better cache layouts of struct sock (separate zones for rx/tx paths), we need this preliminary patch. Goal is to transfert fields used at lookup time in the first read-mostly cache line (inside struct sock_common) and move sk_refcnt to a separate cache line (only written by rx path) This patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr, sport and id fields. This allows a future patch to define these fields as macros, like sk_refcnt, without name clashes. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
988ade6b8e
commit
c720c7e838
@@ -505,7 +505,7 @@ static inline struct raw6_sock *raw6_sk(const struct sock *sk)
|
||||
|
||||
#define INET6_MATCH(__sk, __net, __hash, __saddr, __daddr, __ports, __dif)\
|
||||
(((__sk)->sk_hash == (__hash)) && sock_net((__sk)) == (__net) && \
|
||||
((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \
|
||||
((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
|
||||
((__sk)->sk_family == AF_INET6) && \
|
||||
ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \
|
||||
ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \
|
||||
|
@@ -46,8 +46,8 @@ static inline int inet6_sk_ehashfn(const struct sock *sk)
|
||||
const struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
const struct in6_addr *laddr = &np->rcv_saddr;
|
||||
const struct in6_addr *faddr = &np->daddr;
|
||||
const __u16 lport = inet->num;
|
||||
const __be16 fport = inet->dport;
|
||||
const __u16 lport = inet->inet_num;
|
||||
const __be16 fport = inet->inet_dport;
|
||||
struct net *net = sock_net(sk);
|
||||
|
||||
return inet6_ehashfn(net, laddr, lport, faddr, fport);
|
||||
|
@@ -241,7 +241,7 @@ static inline int inet_lhashfn(struct net *net, const unsigned short num)
|
||||
|
||||
static inline int inet_sk_listen_hashfn(const struct sock *sk)
|
||||
{
|
||||
return inet_lhashfn(sock_net(sk), inet_sk(sk)->num);
|
||||
return inet_lhashfn(sock_net(sk), inet_sk(sk)->inet_num);
|
||||
}
|
||||
|
||||
/* Caller must disable local BH processing. */
|
||||
@@ -301,8 +301,8 @@ typedef __u64 __bitwise __addrpair;
|
||||
#endif /* __BIG_ENDIAN */
|
||||
#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
|
||||
(((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
|
||||
((*((__addrpair *)&(inet_sk(__sk)->daddr))) == (__cookie)) && \
|
||||
((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \
|
||||
((*((__addrpair *)&(inet_sk(__sk)->inet_daddr))) == (__cookie)) && \
|
||||
((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
|
||||
(!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
|
||||
#define INET_TW_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
|
||||
(((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
|
||||
@@ -313,9 +313,9 @@ typedef __u64 __bitwise __addrpair;
|
||||
#define INET_ADDR_COOKIE(__name, __saddr, __daddr)
|
||||
#define INET_MATCH(__sk, __net, __hash, __cookie, __saddr, __daddr, __ports, __dif) \
|
||||
(((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
|
||||
(inet_sk(__sk)->daddr == (__saddr)) && \
|
||||
(inet_sk(__sk)->rcv_saddr == (__daddr)) && \
|
||||
((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \
|
||||
(inet_sk(__sk)->inet_daddr == (__saddr)) && \
|
||||
(inet_sk(__sk)->inet_rcv_saddr == (__daddr)) && \
|
||||
((*((__portpair *)&(inet_sk(__sk)->inet_dport))) == (__ports)) && \
|
||||
(!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))
|
||||
#define INET_TW_MATCH(__sk, __net, __hash,__cookie, __saddr, __daddr, __ports, __dif) \
|
||||
(((__sk)->sk_hash == (__hash)) && net_eq(sock_net(__sk), (__net)) && \
|
||||
|
@@ -93,14 +93,14 @@ struct rtable;
|
||||
*
|
||||
* @sk - ancestor class
|
||||
* @pinet6 - pointer to IPv6 control block
|
||||
* @daddr - Foreign IPv4 addr
|
||||
* @rcv_saddr - Bound local IPv4 addr
|
||||
* @dport - Destination port
|
||||
* @num - Local port
|
||||
* @saddr - Sending source
|
||||
* @inet_daddr - Foreign IPv4 addr
|
||||
* @inet_rcv_saddr - Bound local IPv4 addr
|
||||
* @inet_dport - Destination port
|
||||
* @inet_num - Local port
|
||||
* @inet_saddr - Sending source
|
||||
* @uc_ttl - Unicast TTL
|
||||
* @sport - Source port
|
||||
* @id - ID counter for DF pkts
|
||||
* @inet_sport - Source port
|
||||
* @inet_id - ID counter for DF pkts
|
||||
* @tos - TOS
|
||||
* @mc_ttl - Multicasting TTL
|
||||
* @is_icsk - is this an inet_connection_sock?
|
||||
@@ -115,16 +115,16 @@ struct inet_sock {
|
||||
struct ipv6_pinfo *pinet6;
|
||||
#endif
|
||||
/* Socket demultiplex comparisons on incoming packets. */
|
||||
__be32 daddr;
|
||||
__be32 rcv_saddr;
|
||||
__be16 dport;
|
||||
__u16 num;
|
||||
__be32 saddr;
|
||||
__be32 inet_daddr;
|
||||
__be32 inet_rcv_saddr;
|
||||
__be16 inet_dport;
|
||||
__u16 inet_num;
|
||||
__be32 inet_saddr;
|
||||
__s16 uc_ttl;
|
||||
__u16 cmsg_flags;
|
||||
struct ip_options *opt;
|
||||
__be16 sport;
|
||||
__u16 id;
|
||||
__be16 inet_sport;
|
||||
__u16 inet_id;
|
||||
__u8 tos;
|
||||
__u8 mc_ttl;
|
||||
__u8 pmtudisc;
|
||||
@@ -190,10 +190,10 @@ static inline unsigned int inet_ehashfn(struct net *net,
|
||||
static inline int inet_sk_ehashfn(const struct sock *sk)
|
||||
{
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
const __be32 laddr = inet->rcv_saddr;
|
||||
const __u16 lport = inet->num;
|
||||
const __be32 faddr = inet->daddr;
|
||||
const __be16 fport = inet->dport;
|
||||
const __be32 laddr = inet->inet_rcv_saddr;
|
||||
const __u16 lport = inet->inet_num;
|
||||
const __be32 faddr = inet->inet_daddr;
|
||||
const __be16 fport = inet->inet_dport;
|
||||
struct net *net = sock_net(sk);
|
||||
|
||||
return inet_ehashfn(net, laddr, lport, faddr, fport);
|
||||
|
@@ -194,7 +194,7 @@ static inline struct inet_timewait_sock *inet_twsk(const struct sock *sk)
|
||||
static inline __be32 inet_rcv_saddr(const struct sock *sk)
|
||||
{
|
||||
return likely(sk->sk_state != TCP_TIME_WAIT) ?
|
||||
inet_sk(sk)->rcv_saddr : inet_twsk(sk)->tw_rcv_saddr;
|
||||
inet_sk(sk)->inet_rcv_saddr : inet_twsk(sk)->tw_rcv_saddr;
|
||||
}
|
||||
|
||||
extern void inet_twsk_put(struct inet_timewait_sock *tw);
|
||||
|
@@ -240,8 +240,8 @@ static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst, str
|
||||
* does not change, they drop every other packet in
|
||||
* a TCP stream using header compression.
|
||||
*/
|
||||
iph->id = (sk && inet_sk(sk)->daddr) ?
|
||||
htons(inet_sk(sk)->id++) : 0;
|
||||
iph->id = (sk && inet_sk(sk)->inet_daddr) ?
|
||||
htons(inet_sk(sk)->inet_id++) : 0;
|
||||
} else
|
||||
__ip_select_ident(iph, dst, 0);
|
||||
}
|
||||
@@ -249,9 +249,9 @@ static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst, str
|
||||
static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst, struct sock *sk, int more)
|
||||
{
|
||||
if (iph->frag_off & htons(IP_DF)) {
|
||||
if (sk && inet_sk(sk)->daddr) {
|
||||
iph->id = htons(inet_sk(sk)->id);
|
||||
inet_sk(sk)->id += 1 + more;
|
||||
if (sk && inet_sk(sk)->inet_daddr) {
|
||||
iph->id = htons(inet_sk(sk)->inet_id);
|
||||
inet_sk(sk)->inet_id += 1 + more;
|
||||
} else
|
||||
iph->id = 0;
|
||||
} else
|
||||
@@ -317,7 +317,7 @@ static inline void ip_ib_mc_map(__be32 naddr, const unsigned char *broadcast, ch
|
||||
|
||||
static __inline__ void inet_reset_saddr(struct sock *sk)
|
||||
{
|
||||
inet_sk(sk)->rcv_saddr = inet_sk(sk)->saddr = 0;
|
||||
inet_sk(sk)->inet_rcv_saddr = inet_sk(sk)->inet_saddr = 0;
|
||||
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
||||
if (sk->sk_family == PF_INET6) {
|
||||
struct ipv6_pinfo *np = inet6_sk(sk);
|
||||
|
Reference in New Issue
Block a user