From: Jiri Pirko <jiri@resnulli.us>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Saeed Mahameed <saeed@kernel.org>,
Saeed Mahameed <saeedm@nvidia.com>,
"David S. Miller" <davem@davemloft.net>,
Paolo Abeni <pabeni@redhat.com>,
Eric Dumazet <edumazet@google.com>,
netdev@vger.kernel.org, Tariq Toukan <tariqt@nvidia.com>,
Shay Drory <shayd@nvidia.com>, Moshe Shemesh <moshe@nvidia.com>
Subject: Re: [net-next 14/15] net/mlx5: Light probe local SFs
Date: Wed, 21 Jun 2023 15:14:35 +0200 [thread overview]
Message-ID: <ZJL3u/6Pg7R2Qy94@nanopsycho> (raw)
In-Reply-To: <20230615123325.421ec9aa@kernel.org>
Thu, Jun 15, 2023 at 09:33:25PM CEST, kuba@kernel.org wrote:
>On Thu, 15 Jun 2023 19:37:23 +0200 Jiri Pirko wrote:
>> Thu, Jun 15, 2023 at 06:37:01PM CEST, kuba@kernel.org wrote:
>> >On Thu, 15 Jun 2023 12:51:09 +0200 Jiri Pirko wrote:
>> >> The problem is scalability. SFs could be activated in parallel, but the
>> >> cmd that is doing that holds devlink instance lock. That serializes it.
>> >> So we need to either:
>> >> 1) change the devlink locking to be able to execute some of the cmds in
>> >> parallel and leave the activation sync
>> >> 2) change the activation to be async and work with notifications
>> >>
>> >> I like 2) better, as the 1) maze we just got out of recently :)
>> >> WDYT?
>> >
>> >I guess we don't need to wait for the full activation. Is the port
>> >creation also async, then, or just the SF devlink instance creation?
>>
>> I'm not sure I follow :/
>> The activation is when the SF auxiliary device is created. The driver then
>> probes the SF auxiliary device and instantiates everything, SF devlink,
>> SF netdev, etc.
>
>Sorry, maybe let's look at an example:
>
>$ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11
>
>needs to print / return the handle of the created port.
Yep, that is what happens now.
>
>$ devlink port function set pci/0000:08:00.0/32768 \
> hw_addr 00:00:00:00:00:11 state active
>
>needs to print / return the handle of the devlink instance
Right, that makes sense. I will look into adding that. It's a bit
tricky, as the instance might actually appear on a different host, then,
there is nothing to return here.
>
>> We need wait/notification for 2 reasons
>> 1) to get the auxiliary device name for the activated
>> SF. It is needed for convenience of the orchestration tools.
>> 2) to get the result of the activation (success/fail)
>> It is also needed for convenience of the orchestration tools.
>
>Are you saying the activation already waits for the devlink instance to
>be spawned? If so that's great, all we need to do is for the:
Yep.
>
>$ devlink port function set pci/0000:08:00.0/32768 \
> hw_addr 00:00:00:00:00:11 state active
>
>to either return sufficient info for the orchestration to know what the
>resulting SF / SF devlink instance is. Most likely indirectly by adding
>that info to the port so that the PORT_NEW notification carries it.
Yeah, we need to add the same info to the GET cmd.
>
>Did I confuse things even more?
No, no confusion. But, the problem with this is that devlink port function set
active blocks until the activation is done holding the devlink instance
lock. That prevents other ports from being activated in parallel. From
driver/FW/HW perspective, we can do that.
So the question is, how to allow this parallelism?
>
>As a reminder what sparked this convo is that user specifies "sfnum 11"
>in the example, and the sf device gets called "sf.1".
Yeah, will look into that as well.
next prev parent reply other threads:[~2023-06-21 13:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-10 1:42 [pull request][net-next 00/15] mlx5 updates 2023-06-09 Saeed Mahameed
2023-06-10 1:42 ` [net-next 01/15] net/mlx5: Simplify unload all rep code Saeed Mahameed
2023-06-12 11:00 ` patchwork-bot+netdevbpf
2023-06-10 1:42 ` [net-next 02/15] net/mlx5: mlx5_ifc updates for embedded CPU SRIOV Saeed Mahameed
2023-06-10 1:42 ` [net-next 03/15] net/mlx5: Enable devlink port for embedded cpu VF vports Saeed Mahameed
2023-06-10 1:42 ` [net-next 04/15] net/mlx5: Update vport caps query/set for EC VFs Saeed Mahameed
2023-06-10 1:42 ` [net-next 05/15] net/mlx5: Add management of EC VF vports Saeed Mahameed
2023-06-10 1:42 ` [net-next 06/15] net/mlx5: Add/remove peer miss rules for EC VFs Saeed Mahameed
2023-06-10 1:42 ` [net-next 07/15] net/mlx5: Add new page type for EC VF pages Saeed Mahameed
2023-06-10 1:42 ` [net-next 08/15] net/mlx5: Use correct vport when restoring GUIDs Saeed Mahameed
2023-06-10 1:42 ` [net-next 09/15] net/mlx5: Query correct caps for min msix vectors Saeed Mahameed
2023-06-10 1:42 ` [net-next 10/15] net/mlx5: Update SRIOV enable/disable to handle EC/VFs Saeed Mahameed
2023-06-10 1:42 ` [net-next 11/15] net/mlx5: Set max number of embedded CPU VFs Saeed Mahameed
2023-06-10 1:42 ` [net-next 12/15] net/mlx5: Split function_setup() to enable and open functions Saeed Mahameed
2023-06-10 1:42 ` [net-next 13/15] net/mlx5: Move esw multiport devlink param to eswitch code Saeed Mahameed
2023-06-10 1:42 ` [net-next 14/15] net/mlx5: Light probe local SFs Saeed Mahameed
2023-06-10 7:01 ` Jakub Kicinski
2023-06-11 4:15 ` Saeed Mahameed
2023-06-11 5:10 ` Samudrala, Sridhar
2023-06-13 23:41 ` Saeed Mahameed
2023-06-12 17:51 ` Jakub Kicinski
2023-06-13 23:32 ` Saeed Mahameed
2023-06-14 2:05 ` Jakub Kicinski
2023-06-15 10:51 ` Jiri Pirko
2023-06-15 16:37 ` Jakub Kicinski
2023-06-15 17:37 ` Jiri Pirko
2023-06-15 19:33 ` Jakub Kicinski
2023-06-21 13:14 ` Jiri Pirko [this message]
2023-06-21 18:23 ` Jakub Kicinski
2023-06-22 6:42 ` Jiri Pirko
2023-06-22 6:38 ` Jiri Pirko
2023-06-22 16:35 ` Jakub Kicinski
2023-06-23 9:27 ` Jiri Pirko
2023-06-23 15:21 ` Jakub Kicinski
2023-06-24 9:33 ` Jiri Pirko
2023-06-24 20:47 ` Jakub Kicinski
2023-06-27 10:12 ` Jiri Pirko
2023-06-27 15:24 ` Jakub Kicinski
2023-06-27 17:16 ` Jiri Pirko
2023-06-27 17:35 ` Jakub Kicinski
2023-06-10 1:42 ` [net-next 15/15] net/mlx5e: Remove a useless function call Saeed Mahameed
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=ZJL3u/6Pg7R2Qy94@nanopsycho \
--to=jiri@resnulli.us \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=moshe@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeed@kernel.org \
--cc=saeedm@nvidia.com \
--cc=shayd@nvidia.com \
--cc=tariqt@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox