From: David Ahern <dsahern@kernel.org>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Saeed Mahameed <saeed@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jason Gunthorpe <jgg@nvidia.com>, Arnd Bergmann <arnd@arndb.de>,
Leon Romanovsky <leonro@nvidia.com>, Jiri Pirko <jiri@nvidia.com>,
Leonid Bloch <lbloch@nvidia.com>,
Itay Avraham <itayavr@nvidia.com>,
linux-kernel@vger.kernel.org, Saeed Mahameed <saeedm@nvidia.com>
Subject: Re: [PATCH V3 2/5] misc: mlx5ctl: Add mlx5ctl misc driver
Date: Mon, 27 Nov 2023 21:46:28 -0700 [thread overview]
Message-ID: <20231128044628.GA8901@u2004-local> (raw)
In-Reply-To: <20231127160719.4a8b2ad1@kernel.org>
On Mon, Nov 27, 2023 at 04:07:19PM -0800, Jakub Kicinski wrote:
> On Mon, 27 Nov 2023 11:26:06 -0800 Saeed Mahameed wrote:
> > This driver is different as it doesn't replace existing mlx5 drivers,
> > mlx5 functionality drivers are still there to expose the device features
> > through the standard stacks, this is just a companion driver to access
> > debug information, by driver and FW design mlx5ctl is not meant to
> > manage or pilot the device like other device specific char drivers.
>
> You keep saying "debug information" which is really underselling this
> driver. Are you not going to support mstreg?
>
> The common development flow as far as netdev is concerned is:
> - some customer is interested in a new feature of a chip
> - vendor hacks the support out of tree, using oot module and/or
> user space tooling
> - customer does a PoC with that hacked up, non-upstream solution
> - if it works, vendor has to find out a proper upstream API,
> hopefully agreed on with other vendors
> - if it doesn't match customer needs the whole thing lands in the bin
>
> If the vendor specific PoC can be achieved with fully upstream software
> we lose leverage to force vendors to agree on common APIs.
Please elaborate on what "common" API there is to create here?
Do you agree that each ASIC in the device is unique and hence will
have made different trade offs - both features and nerd knobs to tune
and affect the performance and runtime capabilities? If you do not
agree, then we need to have a different discussion ...
If you do, please elaborate on the outline of some common API that
could possibly be done here.
You said no to the devlink parameters as a way to tune an ASIC. This
is a common, established tool, using a common, established message
channel but in an open, free form way of letting a customer see what
tunables there are for a specific H/W version and firmware version
and then set them. That is about as common as can be for different
vendors creating different ASICs with different goals and design
objectives. Yet, you somehow expect all of them to have nerd knob X
and tunable Y. That is not realistic.
>
> This should all be self-evident for people familiar with netdev, but
> I thought I'd spell it out.
>
> I understand that the device has other uses, but every modern NIC has
> other uses. I don't see how netdev can agree to this driver as long as
> there is potential for configuring random networking things thru it.
> All major netdev vendors have a set of out of tree tools / "expose
> everything misc drivers", "for debug". They will soon follow your
> example if we let this in.
Out of tree drivers are already ingrained into customers now. Mellanox
(in this case) has tried many different angles at getting access to H/W
unique tunables (i.e., the devlink comment) and now dumping huge amounts
of data. Your response to the devlink parameters attempt is to basically
abuse the firmware upgrade command as a way to push a binary blob that
can contain said settings (and I still have not fully wrapped my head
around the fact that you suggested that option).
What specifically are you looking for? There are different vendors and
different h/w options for specific market based reasons. Your hard line
stance against needs like this is what is pushing out of tree drivers
and tools to continue.
next prev parent reply other threads:[~2023-11-28 4:54 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-21 7:06 [PATCH V3 0/5] mlx5 ConnectX control misc driver Saeed Mahameed
2023-11-21 7:06 ` [PATCH V3 1/5] mlx5: Add aux dev for ctl interface Saeed Mahameed
2023-11-21 7:06 ` [PATCH V3 2/5] misc: mlx5ctl: Add mlx5ctl misc driver Saeed Mahameed
2023-11-27 13:36 ` Greg Kroah-Hartman
2023-11-27 14:40 ` Jason Gunthorpe
2023-11-27 15:51 ` Greg Kroah-Hartman
2023-11-27 16:17 ` Jason Gunthorpe
2023-11-27 18:27 ` Greg Kroah-Hartman
2023-11-27 19:26 ` Saeed Mahameed
2023-11-28 0:07 ` Jakub Kicinski
2023-11-28 4:46 ` David Ahern [this message]
2023-11-28 14:53 ` Jakub Kicinski
2023-11-28 16:24 ` Jason Gunthorpe
2023-11-28 16:44 ` Jakub Kicinski
2023-11-28 17:52 ` Jason Gunthorpe
2023-11-28 18:33 ` Jakub Kicinski
2023-11-28 19:55 ` Saeed Mahameed
2023-11-28 20:10 ` Saeed Mahameed
2023-11-29 9:08 ` Greg Kroah-Hartman
2023-12-04 21:37 ` Aron Silverton
2023-12-05 2:52 ` Jakub Kicinski
2023-12-05 17:11 ` Aron Silverton
2023-12-06 4:48 ` Jakub Kicinski
2023-12-07 15:54 ` David Ahern
2023-12-07 16:20 ` Jakub Kicinski
2023-12-07 16:41 ` Aron Silverton
2023-12-07 17:23 ` Jakub Kicinski
2023-12-07 18:06 ` Aron Silverton
2023-12-07 19:02 ` Saeed Mahameed
2023-12-08 5:29 ` Greg Kroah-Hartman
2023-12-08 13:34 ` Jason Gunthorpe
2023-12-08 5:27 ` Greg Kroah-Hartman
2023-12-08 12:52 ` Jason Gunthorpe
2023-12-07 18:54 ` Saeed Mahameed
2023-12-13 16:55 ` Christoph Hellwig
2023-11-28 19:31 ` Saeed Mahameed
2023-11-28 16:52 ` David Ahern
2023-11-27 18:59 ` Greg Kroah-Hartman
2023-11-29 9:08 ` Saeed Mahameed
2023-11-29 9:20 ` Greg Kroah-Hartman
2023-11-29 13:02 ` Jason Gunthorpe
2023-11-29 15:41 ` Greg Kroah-Hartman
2023-11-29 18:07 ` Jason Gunthorpe
2023-11-21 7:06 ` [PATCH V3 3/5] misc: mlx5ctl: Add info ioctl Saeed Mahameed
2023-11-27 19:09 ` Greg Kroah-Hartman
2023-11-27 20:39 ` Saeed Mahameed
2023-11-28 9:13 ` Greg Kroah-Hartman
2023-11-29 8:53 ` Saeed Mahameed
2023-11-21 7:06 ` [PATCH V3 4/5] misc: mlx5ctl: Add command rpc ioctl Saeed Mahameed
2023-11-21 7:06 ` [PATCH V3 5/5] misc: mlx5ctl: Add umem reg/unreg ioctl Saeed Mahameed
2023-11-21 20:44 ` Jakub Kicinski
2023-11-21 21:04 ` Saeed Mahameed
2023-11-21 22:10 ` Jakub Kicinski
2023-11-21 22:52 ` Saeed Mahameed
2023-11-21 22:18 ` David Ahern
2023-11-21 22:46 ` Saeed Mahameed
2023-11-21 23:46 ` Jason Gunthorpe
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=20231128044628.GA8901@u2004-local \
--to=dsahern@kernel.org \
--cc=arnd@arndb.de \
--cc=gregkh@linuxfoundation.org \
--cc=itayavr@nvidia.com \
--cc=jgg@nvidia.com \
--cc=jiri@nvidia.com \
--cc=kuba@kernel.org \
--cc=lbloch@nvidia.com \
--cc=leonro@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=saeed@kernel.org \
--cc=saeedm@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;
as well as URLs for NNTP newsgroup(s).