From: Heiner Kallweit <hkallweit1@gmail.com> To: Jakub Kicinski <kuba@kernel.org>, David Miller <davem@davemloft.net>, Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>, Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>, Andrew Lunn <andrew@lunn.ch>, Vivien Didelot <vivien.didelot@gmail.com>, Florian Fainelli <f.fainelli@gmail.com>, Vladimir Oltean <olteanv@gmail.com>, Russell King <linux@armlinux.org.uk>, Pablo Neira Ayuso <pablo@netfilter.org>, Harald Welte <laforge@gnumonks.org>, "Jason A. Donenfeld" <Jason@zx2c4.com>, Herbert Xu <herbert@gondor.apana.org.au> Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>, osmocom-net-gprs@lists.osmocom.org, wireguard@lists.zx2c4.com, Steffen Klassert <steffen.klassert@secunet.com> Subject: [PATCH net-next v2 04/10] ip6_tunnel: switch to dev_get_tstats64 Date: Wed, 4 Nov 2020 15:26:11 +0100 Message-ID: <4dc3d9f1-bf5e-1f56-9810-7af29988a5f1@gmail.com> (raw) In-Reply-To: <059fcb95-fba8-673e-0cd6-fb26e8ed4861@gmail.com> Switch ip6_tunnel to the standard statistics pattern: - use dev->stats for the less frequently accessed counters - use dev->tstats for the frequently accessed counters An additional benefit is that we now have 64bit statistics also on 32bit systems. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- net/ipv6/ip6_tunnel.c | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 648db3fe5..321d057c5 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -94,36 +94,6 @@ static inline int ip6_tnl_mpls_supported(void) return IS_ENABLED(CONFIG_MPLS); } -static struct net_device_stats *ip6_get_stats(struct net_device *dev) -{ - struct pcpu_sw_netstats tmp, sum = { 0 }; - int i; - - for_each_possible_cpu(i) { - unsigned int start; - const struct pcpu_sw_netstats *tstats = - per_cpu_ptr(dev->tstats, i); - - do { - start = u64_stats_fetch_begin_irq(&tstats->syncp); - tmp.rx_packets = tstats->rx_packets; - tmp.rx_bytes = tstats->rx_bytes; - tmp.tx_packets = tstats->tx_packets; - tmp.tx_bytes = tstats->tx_bytes; - } while (u64_stats_fetch_retry_irq(&tstats->syncp, start)); - - sum.rx_packets += tmp.rx_packets; - sum.rx_bytes += tmp.rx_bytes; - sum.tx_packets += tmp.tx_packets; - sum.tx_bytes += tmp.tx_bytes; - } - dev->stats.rx_packets = sum.rx_packets; - dev->stats.rx_bytes = sum.rx_bytes; - dev->stats.tx_packets = sum.tx_packets; - dev->stats.tx_bytes = sum.tx_bytes; - return &dev->stats; -} - #define for_each_ip6_tunnel_rcu(start) \ for (t = rcu_dereference(start); t; t = rcu_dereference(t->next)) @@ -1835,7 +1805,7 @@ static const struct net_device_ops ip6_tnl_netdev_ops = { .ndo_start_xmit = ip6_tnl_start_xmit, .ndo_do_ioctl = ip6_tnl_ioctl, .ndo_change_mtu = ip6_tnl_change_mtu, - .ndo_get_stats = ip6_get_stats, + .ndo_get_stats64 = dev_get_tstats64, .ndo_get_iflink = ip6_tnl_get_iflink, }; -- 2.29.2
next prev parent reply other threads:[~2020-11-09 22:53 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-04 14:23 [PATCH net-next v2 00/10] net: add and use dev_get_tstats64 Heiner Kallweit 2020-11-04 14:24 ` [PATCH net-next v2 01/10] net: core: add dev_get_tstats64 as a ndo_get_stats64 implementation Heiner Kallweit 2020-11-04 14:24 ` [PATCH net-next v2 02/10] net: dsa: use net core stats64 handling Heiner Kallweit 2020-11-04 14:25 ` [PATCH net-next v2 03/10] tun: switch to net core provided statistics counters Heiner Kallweit 2020-11-06 1:14 ` Jakub Kicinski 2020-11-06 7:48 ` Heiner Kallweit 2020-11-06 8:27 ` Heiner Kallweit 2020-11-06 16:18 ` Jakub Kicinski 2020-11-04 14:26 ` Heiner Kallweit [this message] 2020-11-04 14:27 ` [PATCH net-next v2 05/10] net: switch to dev_get_tstats64 Heiner Kallweit 2020-11-04 14:27 ` [PATCH net-next v2 06/10] gtp: " Heiner Kallweit 2020-11-05 7:58 ` Harald Welte 2020-11-04 14:28 ` [PATCH net-next v2 07/10] wireguard: " Heiner Kallweit 2020-11-04 19:46 ` Jason A. Donenfeld 2020-11-04 14:28 ` [PATCH net-next v2 08/10] vti: " Heiner Kallweit 2020-11-04 14:29 ` [PATCH net-next v2 09/10] ipv4/ipv6: " Heiner Kallweit 2020-11-04 14:31 ` [PATCH net-next v2 10/10] net: remove ip_tunnel_get_stats64 Heiner Kallweit
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=4dc3d9f1-bf5e-1f56-9810-7af29988a5f1@gmail.com \ --to=hkallweit1@gmail.com \ --cc=Jason@zx2c4.com \ --cc=andrew@lunn.ch \ --cc=davem@davemloft.net \ --cc=f.fainelli@gmail.com \ --cc=herbert@gondor.apana.org.au \ --cc=kuba@kernel.org \ --cc=kuznet@ms2.inr.ac.ru \ --cc=laforge@gnumonks.org \ --cc=linux@armlinux.org.uk \ --cc=netdev@vger.kernel.org \ --cc=olteanv@gmail.com \ --cc=osmocom-net-gprs@lists.osmocom.org \ --cc=pablo@netfilter.org \ --cc=steffen.klassert@secunet.com \ --cc=vivien.didelot@gmail.com \ --cc=wireguard@lists.zx2c4.com \ --cc=yoshfuji@linux-ipv6.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Development discussion of WireGuard This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.vuxu.org/wireguard # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 wireguard wireguard/ http://inbox.vuxu.org/wireguard \ wireguard@lists.zx2c4.com public-inbox-index wireguard Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.vuxu.org/vuxu.archive.wireguard AGPL code for this site: git clone https://public-inbox.org/public-inbox.git