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.
next prev 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®