Thread (30 messages) 30 messages, 6 authors, 2025-12-05

Re: [PATCH net-next V4 02/14] documentation: networking: add shared devlink documentation

From: Jiri Pirko <jiri@resnulli.us>
Date: 2025-12-01 10:50:13
Also in: linux-doc, linux-rdma, lkml

Sat, Nov 29, 2025 at 04:19:24AM +0100, kuba@kernel.org wrote:
On Fri, 28 Nov 2025 12:00:13 +0100 Jiri Pirko wrote:
quoted
quoted
quoted
+Shared devlink instances allow multiple physical functions (PFs) on the same
+chip to share an additional devlink instance for chip-wide operations. This
+should be implemented within individual drivers alongside the individual PF
+devlink instances, not replacing them.
+
+The shared devlink instance should be backed by a faux device and should
+provide a common interface for operations that affect the entire chip
+rather than individual PFs.  
If we go with this we must state very clearly that this is a crutch and
_not_ the recommended configuration...  
Why "not recommented". If there is a usecase for this in a dirrerent
driver, it is probably good to utilize the shared instance, isn't it?
Perhaps I'm missing something.
Having a single instance seems preferable from user's point of view.
Sure, if there is no need for sharing, correct.

quoted
quoted
... because presumably we could use this infra to manage a single
devlink instance? Which is what I asked for initially.  
I'm not sure I follow. If there is only one PF bound, there is 1:1
relationship. Depends on how many PFs of the same ASIC you have.
I'm talking about multi-PF devices. mlx5 supports multi-PF setup for
NUMA locality IIUC. In such configurations per-PF parameters can be
configured on PCI PF ports.
Correct. IFAIK there is one PF devlink instance per NUMA node. The
shared instance on top would make sense to me. That was one of
motivations to introduce it. Then this shared instance would hold
netdev, vf representors etc.

quoted
quoted
Why can't this mutex live in the core?  
Well, the mutex protect the list of instances which are managed in the
driver. If you want to move the mutex, I don't see how to do it without
moving all the code related to shared devlink instances, including faux
probe etc. Is that what you suggest?
Multiple ways you can solve it, but drivers should have to duplicate
all the instance management and locking. BTW please don't use guard().
I'm having troubles to undestand what you say, sorry :/ Do you prefer to
move the code from driver to devlink core or not?
Regarding guard(), sure. I wonder how much more time it's gonna take
since this resistentance fades out :)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help