tcp: do not cache align timewait sockets
authorEric Dumazet <edumazet@google.com>
Fri, 10 Apr 2015 13:07:18 +0000 (06:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Apr 2015 01:16:05 +0000 (21:16 -0400)
With recent adoption of skc_cookie in struct sock_common,
struct tcp_timewait_sock size increased from 192 to 200 bytes
on 64bit arches. SLAB rounds then to 256 bytes.

It is time to drop SLAB_HWCACHE_ALIGN constraint for twsk_slab.

This saves about 12 MB of memory on typical configuration reaching
262144 timewait sockets, and has no noticeable impact on performance.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/sock.c

index 654e38a..e891bcf 100644 (file)
@@ -2799,8 +2799,7 @@ int proto_register(struct proto *prot, int alloc_slab)
                                kmem_cache_create(prot->twsk_prot->twsk_slab_name,
                                                  prot->twsk_prot->twsk_obj_size,
                                                  0,
-                                                 SLAB_HWCACHE_ALIGN |
-                                                       prot->slab_flags,
+                                                 prot->slab_flags,
                                                  NULL);
                        if (prot->twsk_prot->twsk_slab == NULL)
                                goto out_free_timewait_sock_slab_name;