[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1690471774.git.petrm@nvidia.com>
Date: Thu, 27 Jul 2023 17:59:18 +0200
From: Petr Machata <petrm@...dia.com>
To: "David S. Miller" <davem@...emloft.net>, Eric Dumazet
<edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, <netdev@...r.kernel.org>
CC: Ido Schimmel <idosch@...dia.com>, Petr Machata <petrm@...dia.com>,
<mlxsw@...dia.com>
Subject: [PATCH net-next 0/7] mlxsw: Avoid non-tracker helpers when holding and putting netdevices
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@...f888123c9a580 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@...hat.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
Powered by blists - more mailing lists