Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ce120f1 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

net: better pcpu data alignment



Tunnels can force an alignment of their percpu data to reduce number of
cache lines used in fast path, or read in .ndo_get_stats()

percpu_alloc() is a very fine grained allocator, so any small hole will
be used anyway.

Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2bc8ca40
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -27,8 +27,8 @@

struct veth_net_stats {
	u64			rx_packets;
	u64			tx_packets;
	u64			rx_bytes;
	u64			tx_packets;
	u64			tx_bytes;
	u64			rx_dropped;
	struct u64_stats_sync	syncp;
+1 −1
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ struct pcpu_tstats {
	unsigned long	rx_bytes;
	unsigned long	tx_packets;
	unsigned long	tx_bytes;
};
} __attribute__((aligned(4*sizeof(unsigned long))));

static struct net_device_stats *ipgre_get_stats(struct net_device *dev)
{
+1 −1
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ struct pcpu_tstats {
	unsigned long	rx_bytes;
	unsigned long	tx_packets;
	unsigned long	tx_bytes;
};
} __attribute__((aligned(4*sizeof(unsigned long))));

static struct net_device_stats *ipip_get_stats(struct net_device *dev)
{
+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ struct pcpu_tstats {
	unsigned long	rx_bytes;
	unsigned long	tx_packets;
	unsigned long	tx_bytes;
};
} __attribute__((aligned(4*sizeof(unsigned long))));

static struct net_device_stats *ip6_get_stats(struct net_device *dev)
{
+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ struct pcpu_tstats {
	unsigned long	rx_bytes;
	unsigned long	tx_packets;
	unsigned long	tx_bytes;
};
} __attribute__((aligned(4*sizeof(unsigned long))));

static struct net_device_stats *ipip6_get_stats(struct net_device *dev)
{