net: align pcpu_sw_netstats and pcpu_lstats structs
authorEric Dumazet <edumazet@google.com>
Fri, 16 Nov 2018 15:24:24 +0000 (07:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 18 Nov 2018 05:37:13 +0000 (21:37 -0800)
Do not risk spanning these small structures on two cache lines,
it is absolutely not worth it.

For 32bit arches, the hint might not be enough, but we do not
really care anymore.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index 917ae7b..086e64d 100644 (file)
@@ -2389,13 +2389,13 @@ struct pcpu_sw_netstats {
        u64     tx_packets;
        u64     tx_bytes;
        struct u64_stats_sync   syncp;
-};
+} __aligned(4 * sizeof(u64));
 
 struct pcpu_lstats {
        u64 packets;
        u64 bytes;
        struct u64_stats_sync syncp;
-};
+} __aligned(2 * sizeof(u64));
 
 #define __netdev_alloc_pcpu_stats(type, gfp)                           \
 ({                                                                     \