netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] mlxsw: Avoid non-tracker helpers when holding and putting netdevices
@ 2023-07-27 15:59 Petr Machata
  2023-07-27 15:59 ` [PATCH net-next 1/7] mlxsw: spectrum: Drop unused functions mlxsw_sp_port_lower_dev_hold/_put() Petr Machata
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Petr Machata @ 2023-07-27 15:59 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	netdev
  Cc: Ido Schimmel, Petr Machata, mlxsw

Using the tracking helpers, netdev_hold() and netdev_put(), makes it easier
to debug netdevice refcount imbalances when CONFIG_NET_DEV_REFCNT_TRACKER
is enabled. For example, the following traceback shows the callpath to the
point of an outstanding hold that was never put:

    unregister_netdevice: waiting for swp3 to become free. Usage count = 6
    ref_tracker: eth%d@ffff888123c9a580 has 1/5 users at
	mlxsw_sp_switchdev_event+0x6bd/0xcc0 [mlxsw_spectrum]
	notifier_call_chain+0xbf/0x3b0
	atomic_notifier_call_chain+0x78/0x200
	br_switchdev_fdb_notify+0x25f/0x2c0 [bridge]
	fdb_notify+0x16a/0x1a0 [bridge]
	[...]

In this patchset, get rid of all non-ref-tracking helpers in mlxsw.

- Patch #1 drops two functions that are not used anymore, but contain
  dev_hold() / dev_put() calls.

- Patch #2 avoids taking a reference in one function which is called
  under RTNL.

- The remaining patches convert individual hold/put sites one by one
  from trackerless to tracker-enabled.

Suggested-by: Paolo Abeni <pabeni@redhat.com>
Link: https://lore.kernel.org/netdev/4c056da27c19d95ffeaba5acf1427ecadfc3f94c.camel@redhat.com/

Petr Machata (7):
  mlxsw: spectrum: Drop unused functions
    mlxsw_sp_port_lower_dev_hold/_put()
  mlxsw: spectrum_nve: Do not take reference when looking up netdevice
  mlxsw: spectrum_switchdev: Use tracker helpers to hold & put
    netdevices
  mlxsw: spectrum_router: FIB: Use tracker helpers to hold & put
    netdevices
  mlxsw: spectrum_router: hw_stats: Use tracker helpers to hold & put
    netdevices
  mlxsw: spectrum_router: RIF: Use tracker helpers to hold & put
    netdevices
  mlxsw: spectrum_router: IPv6 events: Use tracker helpers to hold & put
    netdevices

 .../net/ethernet/mellanox/mlxsw/spectrum.c    | 17 -------------
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |  2 --
 .../ethernet/mellanox/mlxsw/spectrum_nve.c    |  7 +++---
 .../ethernet/mellanox/mlxsw/spectrum_router.c | 25 +++++++++++--------
 .../mellanox/mlxsw/spectrum_switchdev.c       |  9 ++++---
 5 files changed, 24 insertions(+), 36 deletions(-)

-- 
2.41.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-07-28 20:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-27 15:59 [PATCH net-next 0/7] mlxsw: Avoid non-tracker helpers when holding and putting netdevices Petr Machata
2023-07-27 15:59 ` [PATCH net-next 1/7] mlxsw: spectrum: Drop unused functions mlxsw_sp_port_lower_dev_hold/_put() Petr Machata
2023-07-27 15:59 ` [PATCH net-next 2/7] mlxsw: spectrum_nve: Do not take reference when looking up netdevice Petr Machata
2023-07-27 15:59 ` [PATCH net-next 3/7] mlxsw: spectrum_switchdev: Use tracker helpers to hold & put netdevices Petr Machata
2023-07-27 15:59 ` [PATCH net-next 4/7] mlxsw: spectrum_router: FIB: " Petr Machata
2023-07-27 15:59 ` [PATCH net-next 5/7] mlxsw: spectrum_router: hw_stats: " Petr Machata
2023-07-27 15:59 ` [PATCH net-next 6/7] mlxsw: spectrum_router: RIF: " Petr Machata
2023-07-27 15:59 ` [PATCH net-next 7/7] mlxsw: spectrum_router: IPv6 events: " Petr Machata
2023-07-27 17:02 ` [PATCH net-next 0/7] mlxsw: Avoid non-tracker helpers when holding and putting netdevices Eric Dumazet
2023-07-28 20:50 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).