From: Mark Bloch <mbloch@nvidia.com>
To: Jiri Pirko <jiri@resnulli.us>, Parav Pandit <parav@nvidia.com>
Cc: Jakub Kicinski <kuba@kernel.org>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
Simon Horman <horms@kernel.org>,
Saeed Mahameed <saeedm@nvidia.com>,
Leon Romanovsky <leon@kernel.org>,
Tariq Toukan <tariqt@nvidia.com>,
Andrew Morton <akpm@linux-foundation.org>,
"Borislav Petkov (AMD)" <bp@alien8.de>,
Randy Dunlap <rdunlap@infradead.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Christian Brauner <brauner@kernel.org>,
Petr Mladek <pmladek@suse.com>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Thomas Gleixner <tglx@kernel.org>,
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
Dapeng Mi <dapeng1.mi@linux.intel.com>,
Kees Cook <kees@kernel.org>, Marco Elver <elver@google.com>,
Eric Biggers <ebiggers@kernel.org>,
"NBU-Contact-Li Rongqing (EXTERNAL)" <lirongqing@baidu.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>
Subject: Re: [RFC net-next 0/4] devlink: Add boot-time defaults
Date: Wed, 13 May 2026 08:53:05 +0300 [thread overview]
Message-ID: <29868c1b-5751-421a-9f2b-2ac0f3324904@nvidia.com> (raw)
In-Reply-To: <agNy3RF9WCHBPev5@FV6GYCPJ69>
On 12/05/2026 21:35, Jiri Pirko wrote:
> Tue, May 12, 2026 at 05:25:21PM CEST, parav@nvidia.com wrote:
>>
>>
>>> From: Jiri Pirko <jiri@resnulli.us>
>>> Sent: 12 May 2026 07:37 PM
>>>
>>> Tue, May 12, 2026 at 03:48:32PM CEST, parav@nvidia.com wrote:
>>>>
>>>>> From: Jiri Pirko <jiri@resnulli.us>
>>>>> Sent: 12 May 2026 02:16 PM
>>>>>
>>>>> Mon, May 11, 2026 at 08:21:37PM +0200, parav@nvidia.com wrote:
>>>>>>
>>>>>>> From: Mark Bloch <mbloch@nvidia.com>
>>>>>>> Sent: 10 May 2026 06:02 PM
>>>>>>>
>>>>>>
>>>>>> [..]
>>>>>>
>>>>>>>> I look at it from the perspective that from some CX generation,
>>>>>>>> switchdev mode should be default. So that is a device-based decision.
>>>>>>>> I believe as such it can optionally be permanenty configured (nv config)
>>>>>>>> on older device. Why not?
>>>>>>>
>>>>>> Because sometimes switchdev_inactive is needed and sometimes not.
>>>>>> Such knob is not device decision.
>>>>>
>>>>> That is what I would call corner case. In that, user can use userspace
>>>>> configuration to change the mode in runtime.
>>>>>
>>>> Corner vs common depends on users one talks to. :)
>>>> If fw has switchdev(active) as default, and then
>>>> And user needs to run switchdev_inactive, it will actually break their switching applications.
>>>
>>> Can you describe the actutal breakage please?
>>>
>> Driver default was switchdev so all the traffic is forwarded to the switch,
>> and user didn't have chance to setup the fdb rules.
>> So packets are dropped but user didn't expect the traffic to be forwarded.
>
> User may switch mode to switchdev_inactive early on, before any of the
> representors are created. What's the issue then?
That is the ordering problem I am trying to solve.
On a DPU, the host PF cannot finish loading until the ECPF moves the eswitch to
switchdev/switchdev_inactive. So we need to do that transition during ECPF
driver init, as early as possible. Waiting for userspace means the host PF stays
blocked until userspace is up and has the right logic.
That is not always true in practice, the driver may be built in, loaded from an
initramfs, or the initramfs may simply not contain the devlink policy we need.
Also, after talking with Parav, my understanding is that we need to support both
switchdev and switchdev_inactive, since different customers want different boot
behavior. Once we do the transition, the host PF can load and may start sending
packets. At that point the initial mode already matters: in switchdev_inactive
packets are dropped until userspace programs the pipeline; in switchdev they may
reach the FDB before the pipeline is ready.
So I do not think an early userspace transition is equivalent here. The initial
mode needs to be known by the kernel before userspace runs, which is why I am
proposing the devlink= command line default.
Mark
>
>
>>
>> With this RFC, the device would start in the switchdev_inactive.
>> And user's goal is achieved.
>>
>>>>
>>>> So, one needs to invent switchdev_inactive in the FW.
>>>>
>>>> Jakub's suggestion in this RFC is covering both the scenarios uniformly without above problems.
>>>> Single uapi for all the cases, so looks good to me.
>>>>
>>>> Moreover, do not understand how alternative solves such problems.
>>>> i.e. user is unable to configure the fw because driver is not yet loaded/up.
>>>
>>> See my other reply in this thread. I don't think there is a need to
>>> configure anything in FW. If we fix the behaviour in switchdev mode for
>>> non-sriov user and change the default, no fw knob needed. What am I
>>> missing?
>>>
>> If I understood your suggestion right, is it the devlinkd based solution?
>
> The suggestion is to use "switchdev" as default with user configuration
> no matter if it is devlinkd or something else.
>
>
>>
>> If yes, then Mark explained that it has the issue of all drivers to be loaded, followed by user space to start.
next prev parent reply other threads:[~2026-05-13 5:53 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-06 12:37 [RFC net-next 0/4] devlink: Add boot-time defaults Mark Bloch
2026-05-06 12:37 ` [RFC net-next 1/4] devlink: Add infrastructure for " Mark Bloch
2026-05-06 12:37 ` [RFC net-next 2/4] devlink: Add eswitch mode boot default Mark Bloch
2026-05-06 12:37 ` [RFC net-next 3/4] devlink: Add runtime parameter boot defaults Mark Bloch
2026-05-06 12:37 ` [RFC net-next 4/4] net/mlx5: Apply devlink boot defaults during init Mark Bloch
2026-05-06 15:22 ` [RFC net-next 0/4] devlink: Add boot-time defaults Jiri Pirko
2026-05-06 17:35 ` Mark Bloch
2026-05-07 11:03 ` Jiri Pirko
2026-05-08 17:59 ` Mark Bloch
2026-05-08 18:07 ` Jiri Pirko
2026-05-09 0:52 ` Jakub Kicinski
2026-05-09 7:01 ` Jiri Pirko
2026-05-10 12:31 ` Mark Bloch
2026-05-11 8:07 ` Jiri Pirko
2026-05-11 18:21 ` Parav Pandit
2026-05-12 8:45 ` Jiri Pirko
2026-05-12 13:48 ` Parav Pandit
2026-05-12 14:07 ` Jiri Pirko
2026-05-12 15:25 ` Parav Pandit
2026-05-12 18:35 ` Jiri Pirko
2026-05-13 5:53 ` Mark Bloch [this message]
2026-05-13 11:11 ` Jiri Pirko
2026-05-10 16:37 ` Jakub Kicinski
2026-05-11 8:42 ` Jiri Pirko
2026-05-11 23:41 ` Jakub Kicinski
2026-05-12 8:42 ` Jiri Pirko
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=29868c1b-5751-421a-9f2b-2ac0f3324904@nvidia.com \
--to=mbloch@nvidia.com \
--cc=akpm@linux-foundation.org \
--cc=andrew+netdev@lunn.ch \
--cc=bp@alien8.de \
--cc=brauner@kernel.org \
--cc=corbet@lwn.net \
--cc=dapeng1.mi@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=ebiggers@kernel.org \
--cc=edumazet@google.com \
--cc=elver@google.com \
--cc=horms@kernel.org \
--cc=jiri@resnulli.us \
--cc=kees@kernel.org \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lirongqing@baidu.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=parav@nvidia.com \
--cc=paulmck@kernel.org \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rdunlap@infradead.org \
--cc=saeedm@nvidia.com \
--cc=skhan@linuxfoundation.org \
--cc=tariqt@nvidia.com \
--cc=tglx@kernel.org \
/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