tcp: shrink tcp6_timewait_sock by one cache line
authorEric Dumazet <edumazet@google.com>
Thu, 3 Oct 2013 21:27:25 +0000 (14:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Oct 2013 21:43:39 +0000 (17:43 -0400)
commit96f817fedec48b59c9e8b22141cec4e56ad47913
tree81ca60148cfc015a3cfdb5b4d14a7b23f41cf2ac
parent40dc9ab277eb3d2d3d3442c20accb5dfa577e680
tcp: shrink tcp6_timewait_sock by one cache line

While working on tcp listener refactoring, I found that it
would really make things easier if sock_common could include
the IPv6 addresses needed in the lookups, instead of doing
very complex games to get their values (depending on sock
being SYN_RECV, ESTABLISHED, TIME_WAIT)

For this to happen, I need to be sure that tcp6_timewait_sock
and tcp_timewait_sock consume same number of cache lines.

This is possible if we only use 32bits for tw_ttd, as we remove
one 32bit hole in inet_timewait_sock

inet_tw_time_stamp() is defined and used, even if its current
implementation looks like tcp_time_stamp : We might need finer
resolution for tcp_time_stamp in the future.

Before patch : sizeof(struct tcp6_timewait_sock) = 0xc8

After patch : sizeof(struct tcp6_timewait_sock) = 0xc0

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_timewait_sock.h
net/ipv4/inet_diag.c
net/ipv4/inet_timewait_sock.c
net/ipv6/tcp_ipv6.c