Thread (40 messages) 40 messages, 7 authors, 2024-02-20

Re: [RFC PATCH v3 net-next] Documentation: devlink: Add devlink-sd

From: Jacob Keller <jacob.e.keller@intel.com>
Date: 2024-02-16 21:44:51


On 2/16/2024 12:10 AM, Jiri Pirko wrote:
Thu, Feb 15, 2024 at 06:41:31PM CET, jacob.e.keller@intel.com wrote:
quoted

On 2/15/2024 5:19 AM, Jiri Pirko wrote:
quoted
Fri, Feb 09, 2024 at 02:26:33AM CET, kuba@kernel.org wrote:
quoted
On Fri, 2 Feb 2024 08:46:56 +0100 Jiri Pirko wrote:
quoted
Fri, Feb 02, 2024 at 05:00:41AM CET, kuba@kernel.org wrote:
quoted
On Thu, 1 Feb 2024 11:13:57 +0100 Jiri Pirko wrote:  
quoted
Wait a sec.  
No, you wait a sec ;) Why do you think this belongs to devlink?
Two months ago you were complaining bitterly when people were
considering using devlink rate to control per-queue shapers.
And now it's fine to add queues as a concept to devlink?  
Do you have a better suggestion how to model common pool object for
multiple netdevices? This is the reason why devlink was introduced to
provide a platform for common/shared things for a device that contains
multiple netdevs/ports/whatever. But I may be missing something here,
for sure.
devlink just seems like the lowest common denominator, but the moment
we start talking about multi-PF devices it also gets wobbly :(
You mean you see real to have a multi-PF device that allows to share the
pools between the PFs? If, in theory, that exists, could this just be a
limitation perhaps?
I don't know offhand if we have a device which can share pools
specifically, but we do have multi-PF devices which have a lot of shared
resources. However, due to the multi-PF PCIe design. I looked into ways
to get a single devlink across the devices.. but ultimately got stymied
and gave up.

This left us with accepting the limitation that each PF gets its own
devlink and can't really communicate with other PFs.

The existing solution has just been to partition the shared resources
evenly across PFs, typically via firmware. No flexibility.

I do think the best solution here would be to figure out a generic way
to tie multiple functions into a single devlink representing the device.
Then each function gets the set of devlink_port objects associated to
it. I'm not entirely sure how that would work. We could hack something
together with auxbus.. but thats pretty ugly. Some sort of orchestration
in the PCI layer that could identify when a device wants to have some
sort of "parent" driver which loads once and has ties to each of the
function drivers would be ideal.
Hmm, dpll does this. You basically share dpll device instance in between
multiple pci functions. The same concept could be done for devlink. We
have to figure out the backward compatibility. User now expects the
instances per-pf.
Ya, ice started doing this over auxbus for PTP as well, because we had a
bunch of issues with E822 devices that couldn't be solved without some
communication across PF.

I'm not sure its actually worth trying to change how devlink works now,
its pretty ingrained at this point.

But I think it is a possibility that could have happened, and having a
centralized "this is the device owner" would have simplified a lot of
concepts for managing these sorts of shared resources which are not
owned by a single PF.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help