[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230104041636.226398-1-kuba@kernel.org>
Date: Tue, 3 Jan 2023 20:16:22 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org, edumazet@...gle.com, pabeni@...hat.com,
jacob.e.keller@...el.com, jiri@...nulli.us,
Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net-next 00/14] devlink: code split and structured instance walk
Split devlink.c into a handful of files, trying to keep the "core"
code away from all the command-specific implementations.
The core code has been quite scattered until now. Going forward we can
consider using a source file per-subobject, I think that it's quite
beneficial to newcomers (based on relative ease with which folks
contribute to ethtool vs devlink). But this series doesn't split
everything out, yet - partially due to backporting concerns,
but mostly due to lack of time. Bulk of the netlink command
handling is left in a leftover.c file.
Introduce a context structure for dumps, and use it to store
the devlink instance ID of the last dumped devlink instance.
This means we don't have to restart the walk from 0 each time.
Finally - introduce a "structured walk". A centralized dump handler
in devlink/netlink.c which walks the devlink instances, deals with
refcounting/locking, simplifying the per-object implementations quite
a bit. Inspired by the ethtool code.
RFC: https://lore.kernel.org/all/20221215020155.1619839-1-kuba@kernel.org/
v1:
- re-route the locking fix via net
- rename basic.c -> leftover.c
Jakub Kicinski (14):
devlink: move code to a dedicated directory
devlink: split out core code
devlink: split out netlink code
netlink: add macro for checking dump ctx size
devlink: use an explicit structure for dump context
devlink: remove start variables from dumps
devlink: drop the filter argument from devlinks_xa_find_get
devlink: health: combine loops in dump
devlink: restart dump based on devlink instance ids (simple)
devlink: restart dump based on devlink instance ids (nested)
devlink: restart dump based on devlink instance ids (function)
devlink: uniformly take the devlink instance lock in the dump loop
devlink: add by-instance dump infra
devlink: convert remaining dumps to the by-instance scheme
include/linux/netlink.h | 4 +
net/Makefile | 1 +
net/core/Makefile | 1 -
net/devlink/Makefile | 3 +
net/devlink/core.c | 345 +++++
net/devlink/devl_internal.h | 205 +++
net/{core/devlink.c => devlink/leftover.c} | 1460 +++++---------------
net/devlink/netlink.c | 241 ++++
net/netfilter/nf_conntrack_netlink.c | 2 +-
9 files changed, 1157 insertions(+), 1105 deletions(-)
create mode 100644 net/devlink/Makefile
create mode 100644 net/devlink/core.c
create mode 100644 net/devlink/devl_internal.h
rename net/{core/devlink.c => devlink/leftover.c} (90%)
create mode 100644 net/devlink/netlink.c
--
2.38.1
Powered by blists - more mailing lists