mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Edward Cree <ecree.xilinx@gmail.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: David Ahern <dsahern@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Christoph Hellwig <hch@infradead.org>,
	Saeed Mahameed <saeed@kernel.org>, 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>,
	Saeed Mahameed <saeedm@nvidia.com>,
	Aron Silverton <aron.silverton@oracle.com>,
	linux-kernel@vger.kernel.org,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>
Subject: Re: [PATCH V4 0/5] mlx5 ConnectX control misc driver
Date: Thu, 4 Apr 2024 18:35:04 +0100	[thread overview]
Message-ID: <83025203-fefb-d828-724d-259e5df7c1b2@gmail.com> (raw)
In-Reply-To: <20240402184055.GP946323@nvidia.com>

[ Again, I had better disassociate my employer from the vitriol below,
  for which I alone am responsible. ]

On 02/04/2024 19:40, Jason Gunthorpe wrote:
> Uh no. Alot of this configuration stuff is to serve niche customer
> interests where the customers have no interest in publishing and
> commonizing their method of operating because it would give away their
> own operator secrets. The vendor's created it because their big
> customers demanded it.
> 
> eg there are configurables in mlx5 that exist *soley* to accomodate
> certain customer's pre-existing SW.

So it's a single-user hack, why do you want support for it in upstream?
Oh right, because you want to be able to ship single-user hacks to all
 your customers while still getting the _cachet_ of being An Intree
 Driver with the implied engineering benefits of open source — despite
 the actual feature implementations being obscured in firmware that's
 not subject to the review process and thus doesn't actually carry
 those benefits.

> There are something like 600-800 configurables in mlx5

So because your engineers can't design clean, orthogonal APIs for
 toffee, you should be allowed to bypass review?  Sorry, but no.
The right approach is to find generic mechanisms that cover multiple
 customer configurations by allowing each customer to specify a policy
 — which is better not just for the kernel but also for your customers
 (they can experiment more easily with new policies) and even for you
 (you don't have to spend engineer time on implementing hundreds of
 single-purpose configuration switches, and can instead focus on
 making better products).  And of course the customer's policy, with
 their 'valuable' operator secrets, stays in-house.

This is not some revolutionary new idea or blue-sky architecture
 astronaut thinking; this is the way the Unix engineering tradition
 has worked for half a century.

And it's not like we don't give you the tools to do it!
BPF demonstrates that the kernel is perfectly willing to expose highly
 complex configuration primitives to userspace, *as long as* the
 interface is well-defined and cross-vendor.
Of course, without knowing what your several hundred knobs are for, I
 can't tell you even in the broadest sense what shape a clean config
 system to replace them would look like.  But 800 magic flags isn't it.

> Where is the screaming?  Where has keeping blessed support out of
> the kernel got us?

Well, clearly *someone* wants you to supply them an in-tree driver,
 else you wouldn't be trying to upstream this.  Now maybe they really
 do just have a psychological aversion to TAINT_OOT_MODULE, but it's
 more likely that the underlying reason is the improved reliability,
 maintainability, and portability that come from the upstreaming
 process.  And that in turn only happens because the kernel does not
 "bless" crap.

> The actual benefit of common names for the individual configuration
> values is pretty tiny.

In case I still need to make it clearer: the purpose of requiring
 your configurables to go through review is not so you can have
 "common names" for 800 magic flags.  It's so that you are forced to
 come up with configurables that actually have a sensible design and
 meaningful semantics that you can define in a way that gives you
 something to *put* in the name and the commit message that's not
 just "magic behaviour tweak #42 for $BigCustomer".

> a second argument about who gets to have power in our community.

As I understand it, power in Linux is entirely social and informal.
If you think Kuba doesn't have standing to object, there's nothing
 *technical* stopping you from applying the patches with his
 Nacked-by tag included in the commit messages, then sending the
 resulting PR to Linus.
And if you think that Linus would reject the PR in that case, then
 you're implicitly conceding that Kuba *does* have standing.

  parent reply	other threads:[~2024-04-04 17:35 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-07  7:24 Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 1/5] mlx5: Add aux dev for ctl interface Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 2/5] misc: mlx5ctl: Add mlx5ctl misc driver Saeed Mahameed
2024-02-29 11:44   ` Vegard Nossum
2024-03-02  8:04     ` Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 3/5] misc: mlx5ctl: Add info ioctl Saeed Mahameed
2024-02-29 11:47   ` Vegard Nossum
2024-03-02  8:03     ` Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 4/5] misc: mlx5ctl: Add command rpc ioctl Saeed Mahameed
2024-02-29 11:49   ` Vegard Nossum
2024-03-02  7:48     ` Saeed Mahameed
2024-02-07  7:24 ` [PATCH V4 5/5] misc: mlx5ctl: Add umem reg/unreg ioctl Saeed Mahameed
2024-02-29 11:51   ` Vegard Nossum
2024-02-07 15:03 ` [PATCH V4 0/5] mlx5 ConnectX control misc driver Jakub Kicinski
2024-02-08  5:03   ` Saeed Mahameed
2024-02-09  2:15     ` Jakub Kicinski
2024-02-09  6:55       ` Jiri Pirko
2024-02-09 22:42       ` David Ahern
2024-02-09 22:58         ` Jakub Kicinski
2024-02-10  5:01           ` David Ahern
2024-02-11 11:03             ` Greg Kroah-Hartman
2024-02-11 17:01               ` David Ahern
2024-02-14 20:31             ` David Ahern
2024-02-15  0:46               ` Jason Gunthorpe
2024-02-10  1:01         ` Jason Gunthorpe
2024-02-11 16:59           ` David Ahern
2024-02-14  8:29 ` Christoph Hellwig
2024-02-14 15:48   ` Jakub Kicinski
2024-02-15  7:00     ` Christoph Hellwig
2024-02-15 12:08       ` Jiri Pirko
2024-02-16  1:00       ` Jakub Kicinski
2024-02-16 15:05         ` Jason Gunthorpe
2024-02-15 13:21     ` Jason Gunthorpe
2024-02-16  1:10       ` Jakub Kicinski
2024-02-16  4:20         ` David Ahern
2024-02-16 19:04         ` Jason Gunthorpe
2024-02-14 16:17   ` Andy Gospodarek
2024-02-14 17:57     ` Jason Gunthorpe
2024-02-14 18:11       ` Jakub Kicinski
2024-02-14 18:37         ` Jason Gunthorpe
2024-02-16  1:40           ` Jakub Kicinski
2024-02-16 14:27             ` Jason Gunthorpe
2024-03-04 16:02       ` Jason Gunthorpe
2024-03-22  3:23         ` David Ahern
2024-03-22  7:32           ` Greg Kroah-Hartman
2024-03-22 15:24             ` David Ahern
2024-03-22 15:46               ` Andy Gospodarek
2024-03-22 20:58                 ` Jakub Kicinski
2024-03-22 21:18                   ` David Ahern
2024-03-22 22:40                     ` Jakub Kicinski
2024-03-26 14:57                       ` David Ahern
2024-04-01 12:30                         ` Leon Romanovsky
2024-04-01 14:50                           ` Jakub Kicinski
2024-04-01 18:10                             ` Leon Romanovsky
2024-04-01 19:04                               ` Jakub Kicinski
2024-04-02 19:20                                 ` Leon Romanovsky
2024-04-02 18:45                             ` Jason Gunthorpe
2024-04-02 21:36                               ` Jakub Kicinski
2024-04-02 22:46                                 ` Jason Gunthorpe
2024-04-02 23:21                                   ` Jakub Kicinski
2024-04-03  0:15                                     ` Jakub Kicinski
2024-04-03  6:57                                       ` Leon Romanovsky
2024-04-02 16:32                         ` Edward Cree
2024-04-02 18:40                           ` Jason Gunthorpe
2024-04-03 19:28                             ` David Ahern
2024-04-04 17:35                             ` Edward Cree [this message]
2024-04-04 18:33                               ` Jason Gunthorpe
2024-04-04 19:31                                 ` Edward Cree
2024-04-05 11:21                                   ` Jason Gunthorpe
2024-04-04 19:53                                 ` Jakub Kicinski
2024-04-04 20:44                                   ` Jason Gunthorpe
2024-04-04 21:34                                     ` Jakub Kicinski
2024-04-05 11:13                                       ` Jason Gunthorpe
2024-04-05 15:38                                         ` Jakub Kicinski
2024-04-05 17:48                                           ` Jakub Kicinski
2024-04-08 16:45                                             ` Jason Gunthorpe
2024-04-08 16:41                                           ` Jason Gunthorpe
2024-04-04 18:44                               ` Andrew Lunn
2024-04-04 20:25                                 ` Jason Gunthorpe
2024-04-04 20:53                                   ` Edward Cree
2024-04-05 11:00                                     ` Jason Gunthorpe
2024-04-02 18:48                           ` Leon Romanovsky
2024-04-03 12:26                             ` Edward Cree
2024-04-03 19:00                               ` Leon Romanovsky
2024-04-03 19:31                                 ` David Ahern
2024-04-04  0:01                                   ` Jakub Kicinski
2024-04-04  3:57                                     ` David Ahern
2024-04-04 12:23                                     ` Jason Gunthorpe
2024-04-04 14:48                                       ` Jakub Kicinski
2024-04-04 17:47                                         ` Jason Gunthorpe
2024-04-04 18:06                                           ` Edward Cree
2024-04-04 18:35                                             ` Leon Romanovsky
2024-04-04 19:46                                               ` Edward Cree
2024-04-05 10:41                                                 ` Leon Romanovsky
2024-04-08  8:02                                                   ` Przemek Kitszel
2024-03-22 21:44                   ` Jason Gunthorpe
2024-03-22 22:29                     ` Jakub Kicinski
2024-03-23  1:27                       ` Saeed Mahameed
2024-03-23  1:33                       ` Jason Gunthorpe
2024-03-22 14:53           ` Aron Silverton
2024-04-30  1:36         ` David Ahern
2024-04-30  7:09           ` Greg Kroah-Hartman

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=83025203-fefb-d828-724d-259e5df7c1b2@gmail.com \
    --to=ecree.xilinx@gmail.com \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=arnd@arndb.de \
    --cc=aron.silverton@oracle.com \
    --cc=dsahern@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@infradead.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=netdev@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

all inboxes | Powered by JetHome®