From: Jakub Kicinski <kuba@kernel.org>
To: Jacob Keller <jacob.e.keller@intel.com>, Jiri Pirko <jiri@resnulli.us>
Cc: William Tu <witu@nvidia.com>, <bodong@nvidia.com>,
<jiri@nvidia.com>, <netdev@vger.kernel.org>, <saeedm@nvidia.com>,
"aleksander.lobakin@intel.com" <aleksander.lobakin@intel.com>
Subject: Re: [RFC PATCH v3 net-next] Documentation: devlink: Add devlink-sd
Date: Thu, 15 Feb 2024 18:07:29 -0800 [thread overview]
Message-ID: <20240215180729.07314879@kernel.org> (raw)
In-Reply-To: <aa954911-e6c8-40f8-964c-517e2d8f8ea7@intel.com>
On Thu, 15 Feb 2024 09:41:31 -0800 Jacob Keller wrote:
> 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.
>
> Then this parent driver could register devlink, and each function driver
> could connect to it and allocate ports and function-specific resources.
>
> Alternatively a design which loads a single driver that maintains
> references to each function could work but that requires a significant
> change to the entire driver design and is unlikely to be done for
> existing drivers...
I think the complexity mostly stems from having to answer what the
"right behavior" is. At least that's what I concluded when thinking
about it back at Netronome :) If you do a strict hierarchy where
one PF is preassigned the role of the leader, and just fail if anything
unexpected happens - it should be doable. We already kinda have the
model where devlink is the "first layer of probing" and "reload_up()"
is the second.
Have you had a chance to take a closer look at mlx5 "socket direct"
(rename pending) implementation?
BTW Jiri, weren't you expecting that to use component drivers or some
such?
next prev parent reply other threads:[~2024-02-16 2:07 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-25 4:56 [RFC PATCH v2 net-next] Documentation: devlink: Add devlink-sd William Tu
2024-01-25 21:12 ` [RFC PATCH v3 " William Tu
2024-01-25 22:36 ` William Tu
2024-01-29 10:56 ` Simon Horman
2024-01-29 22:23 ` William Tu
2024-01-31 1:07 ` Jakub Kicinski
2024-01-31 18:47 ` William Tu
2024-01-31 19:06 ` Jakub Kicinski
2024-01-31 19:16 ` William Tu
2024-01-31 20:45 ` Jakub Kicinski
2024-01-31 21:37 ` William Tu
2024-01-31 21:41 ` Jacob Keller
2024-01-31 22:30 ` Jakub Kicinski
2024-01-31 23:02 ` William Tu
2024-01-31 23:17 ` Jakub Kicinski
2024-02-01 2:23 ` Samudrala, Sridhar
2024-02-01 14:00 ` William Tu
2024-02-02 8:48 ` Michal Swiatkowski
2024-02-02 15:27 ` William Tu
2024-02-01 10:13 ` Jiri Pirko
2024-02-02 4:00 ` Jakub Kicinski
2024-02-02 7:46 ` Jiri Pirko
2024-02-09 1:26 ` Jakub Kicinski
2024-02-15 13:19 ` Jiri Pirko
2024-02-15 17:41 ` Jacob Keller
2024-02-16 2:07 ` Jakub Kicinski [this message]
2024-02-16 8:15 ` Jiri Pirko
2024-02-16 21:42 ` Jacob Keller
2024-02-16 21:47 ` Jacob Keller
2024-02-19 8:59 ` Jiri Pirko
2024-02-16 8:10 ` Jiri Pirko
2024-02-16 21:44 ` Jacob Keller
2024-02-16 1:58 ` Jakub Kicinski
2024-02-16 8:06 ` Jiri Pirko
2024-02-17 2:43 ` Jakub Kicinski
2024-02-19 9:06 ` Jiri Pirko
2024-02-20 22:17 ` Jakub Kicinski
2024-02-01 19:16 ` William Tu
2024-02-02 3:30 ` Jakub Kicinski
2024-02-02 4:26 ` William Tu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240215180729.07314879@kernel.org \
--to=kuba@kernel.org \
--cc=aleksander.lobakin@intel.com \
--cc=bodong@nvidia.com \
--cc=jacob.e.keller@intel.com \
--cc=jiri@nvidia.com \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
--cc=saeedm@nvidia.com \
--cc=witu@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.