Message ID | 25c7e008-c3fb-9fcd-f518-5d36e181c0cb@gmail.com |
---|---|
Headers | show |
Series | net: add and use dev_get_tstats64 | expand |
On 11/1/2020 4:34 AM, Heiner Kallweit wrote: > It's a frequent pattern to use netdev->stats for the less frequently > accessed counters and per-cpu counters for the frequently accessed > counters (rx/tx bytes/packets). Add a default ndo_get_stats64() > implementation for this use case. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -- Florian
On 11/1/2020 4:37 AM, Heiner Kallweit wrote: > Use netdev->tstats instead of a member of dsa_slave_priv for storing > a pointer to the per-cpu counters. This allows us to use core > functionality for statistics handling. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -- Florian
On Sun, Nov 01, 2020 at 01:37:03PM +0100, Heiner Kallweit wrote: > Use netdev->tstats instead of a member of dsa_slave_priv for storing > a pointer to the per-cpu counters. This allows us to use core > functionality for statistics handling. > > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > --- Tested-by: Vladimir Oltean <olteanv@gmail.com>
On Sun, 2020-11-01 at 13:33 +0100, Heiner Kallweit wrote: > It's a frequent pattern to use netdev->stats for the less frequently > accessed counters and per-cpu counters for the frequently accessed > counters (rx/tx bytes/packets). Add a default ndo_get_stats64() > implementation for this use case. Subsequently switch more drivers > to use this pattern. > > Heiner Kallweit (5): > net: core: add dev_get_tstats64 as a ndo_get_stats64 implementation > net: make ip_tunnel_get_stats64 an alias for dev_get_tstats64 > ip6_tunnel: use ip_tunnel_get_stats64 as ndo_get_stats64 callback > net: dsa: use net core stats64 handling > tun: switch to net core provided statistics counters > not many left, $ git grep dev_fetch_sw_netstats drivers/ drivers/infiniband/hw/hfi1/ipoib_main.c: dev_fetch_sw_netstats(s torage, priv->netstats); drivers/net/macsec.c: dev_fetch_sw_netstats(s, dev->tstats); drivers/net/usb/qmi_wwan.c: dev_fetch_sw_netstats(stats, priv- >stats64); drivers/net/usb/usbnet.c: dev_fetch_sw_netstats(stats, dev- >stats64); drivers/net/wireless/quantenna/qtnfmac/core.c: dev_fetch_sw_netstats(s tats, vif->stats64); Why not convert them as well ? macsec has a different implementation, but all others can be converted.
On 02.11.2020 23:36, Saeed Mahameed wrote: > On Sun, 2020-11-01 at 13:33 +0100, Heiner Kallweit wrote: >> It's a frequent pattern to use netdev->stats for the less frequently >> accessed counters and per-cpu counters for the frequently accessed >> counters (rx/tx bytes/packets). Add a default ndo_get_stats64() >> implementation for this use case. Subsequently switch more drivers >> to use this pattern. >> >> Heiner Kallweit (5): >> net: core: add dev_get_tstats64 as a ndo_get_stats64 implementation >> net: make ip_tunnel_get_stats64 an alias for dev_get_tstats64 >> ip6_tunnel: use ip_tunnel_get_stats64 as ndo_get_stats64 callback >> net: dsa: use net core stats64 handling >> tun: switch to net core provided statistics counters >> > > not many left, > > $ git grep dev_fetch_sw_netstats drivers/ > > drivers/infiniband/hw/hfi1/ipoib_main.c: dev_fetch_sw_netstats(s > torage, priv->netstats); > drivers/net/macsec.c: dev_fetch_sw_netstats(s, dev->tstats); > drivers/net/usb/qmi_wwan.c: dev_fetch_sw_netstats(stats, priv- >> stats64); > drivers/net/usb/usbnet.c: dev_fetch_sw_netstats(stats, dev- >> stats64); > drivers/net/wireless/quantenna/qtnfmac/core.c: dev_fetch_sw_netstats(s > tats, vif->stats64); > > Why not convert them as well ? > macsec has a different implementation, but all others can be converted. > OK, I can do this. Then the series becomes somewhat bigger. @Jakub: Would it be ok to apply the current series and I provide the additionally requested migrations as follow-up series?
On Tue, 3 Nov 2020 15:46:27 +0100 Heiner Kallweit wrote: > On 02.11.2020 23:36, Saeed Mahameed wrote: > > On Sun, 2020-11-01 at 13:33 +0100, Heiner Kallweit wrote: > >> It's a frequent pattern to use netdev->stats for the less frequently > >> accessed counters and per-cpu counters for the frequently accessed > >> counters (rx/tx bytes/packets). Add a default ndo_get_stats64() > >> implementation for this use case. Subsequently switch more drivers > >> to use this pattern. > >> > >> Heiner Kallweit (5): > >> net: core: add dev_get_tstats64 as a ndo_get_stats64 implementation > >> net: make ip_tunnel_get_stats64 an alias for dev_get_tstats64 > >> ip6_tunnel: use ip_tunnel_get_stats64 as ndo_get_stats64 callback > >> net: dsa: use net core stats64 handling > >> tun: switch to net core provided statistics counters > >> > > > > not many left, > > > > $ git grep dev_fetch_sw_netstats drivers/ > > > > drivers/infiniband/hw/hfi1/ipoib_main.c: dev_fetch_sw_netstats(s > > torage, priv->netstats); > > drivers/net/macsec.c: dev_fetch_sw_netstats(s, dev->tstats); > > drivers/net/usb/qmi_wwan.c: dev_fetch_sw_netstats(stats, priv- > >> stats64); > > drivers/net/usb/usbnet.c: dev_fetch_sw_netstats(stats, dev- > >> stats64); > > drivers/net/wireless/quantenna/qtnfmac/core.c: dev_fetch_sw_netstats(s > > tats, vif->stats64); > > > > Why not convert them as well ? > > macsec has a different implementation, but all others can be converted. > > > OK, I can do this. Then the series becomes somewhat bigger. > @Jakub: Would it be ok to apply the current series and I provide the > additionally requested migrations as follow-up series? Fine by me.