• Eric Dumazet's avatar
    tcp: shrink tcp6_timewait_sock by one cache line · 96f817fe
    Eric Dumazet authored
    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: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    96f817fe
tcp_ipv6.c 51.1 KB