diff options
author | stephen hemminger <shemminger@vyatta.com> | 2010-03-02 16:32:09 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-03-17 07:23:19 +0300 |
commit | 14bb4789833a2e2610f30e2d3e1451701ac96ec1 (patch) | |
tree | 992a40f1c885d22f6bce27d270e5839b1d8d121b /net/bridge/br_private.h | |
parent | 0a9627f2649a02bea165cfd529d7bcb625c2fcad (diff) | |
download | linux-14bb4789833a2e2610f30e2d3e1451701ac96ec1.tar.xz |
bridge: per-cpu packet statistics (v3)
The shared packet statistics are a potential source of slow down
on bridged traffic. Convert to per-cpu array, but only keep those
statistics which change per-packet.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 846d7d1e2075..791d4ab0fd4d 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -135,6 +135,14 @@ struct net_bridge spinlock_t lock; struct list_head port_list; struct net_device *dev; + + struct br_cpu_netstats __percpu { + unsigned long rx_packets; + unsigned long rx_bytes; + unsigned long tx_packets; + unsigned long tx_bytes; + } *stats; + spinlock_t hash_lock; struct hlist_head hash[BR_HASH_SIZE]; unsigned long feature_mask; |