netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Fastabend <john.fastabend@gmail.com>
To: Jakub Kicinski <kuba@kernel.org>,
	 Alexander Duyck <alexander.duyck@gmail.com>
Cc: Jiri Pirko <jiri@resnulli.us>,
	 netdev@vger.kernel.org,  bhelgaas@google.com,
	 linux-pci@vger.kernel.org,
	 Alexander Duyck <alexanderduyck@fb.com>,
	 davem@davemloft.net,  pabeni@redhat.com
Subject: Re: [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface
Date: Thu, 04 Apr 2024 14:59:33 -0700	[thread overview]
Message-ID: <660f22c56a0a2_442282088b@john.notmuch> (raw)
In-Reply-To: <20240404132548.3229f6c8@kernel.org>

Jakub Kicinski wrote:
> On Thu, 4 Apr 2024 12:22:02 -0700 Alexander Duyck wrote:
> > The argument itself doesn't really hold water. The fact is the Meta
> > data centers are not an insignificant consumer of Linux, 
> 
> customer or beneficiary ?
> 
> > so it isn't as if the driver isn't going to be used. This implies
> > some lack of good faith from Meta.
> 
> "Good faith" is not a sufficient foundation for a community consisting
> of volunteers, and commercial entities (with the xz debacle maybe even
> less today than it was a month ago). As a maintainer I really don't want
> to be in position of judging the "good faith" of corporate actors.
> 
> > I don't understand that as we are
> > contributing across multiple areas in the kernel including networking
> > and ebpf. Is Meta expected to start pulling time from our upstream
> > maintainers to have them update out-of-tree kernel modules since the
> > community isn't willing to let us maintain it in the kernel? Is the
> > message that the kernel is expected to get value from Meta, but that
> > value is not meant to be reciprocated? Would you really rather have
> > us start maintaining our own internal kernel with our own
> > "proprietary goodness", and ask other NIC vendors to have to maintain
> > their drivers against yet another kernel if they want to be used in
> > our data centers?
> 
> Please allow the community to make rational choices in the interest of
> the project and more importantly the interest of its broader user base.
> 
> Google would also claim "good faith" -- undoubtedly is supports 
> the kernel, and lets some of its best engineers contribute.
> Did that make them stop trying to build Fuchsia? The "good faith" of
> companies operates with the limits of margin of error of they consider
> rational and beneficial.
> 
> I don't want to put my thumb on the scale (yet?), but (with my
> maintainer hat on) please don't use the "Meta is good" argument, because
> someone will send a similar driver from a less involved company later on
> and we'll be accused of playing favorites :( Plus companies can change
> their approach to open source from "inclusive" to "extractive" 
> (to borrow the economic terminology) rather quickly.
> 

I'll throw my $.02 in. In this case you have a driver that I only scanned
so far, but looks well done. Alex has written lots of drivers I trust he
will not just abondon it. And if it does end up abondoned and no one
supports it at some future point we can deprecate it same as any other
driver in the networking tree. All the feedback is being answered and
debate is happening so I expect will get a v2, v3 or so. All good signs
in my point.

Back to your point about faith in a company. I don't think we even need
to care about whatever companies business plans. The author could have
submitted with their personal address for what its worth and called it
drivers/alexware/duyck.o Bit extreme and I would have called him on it,
but hopefully the point is clear.

We have lots of drivers in the tree that are hard to physically get ahold
of. Or otherwise gated by paying some vendor for compute time, etc. to
use. We even have some drivers where the hardware itself never made
it out into the wild or only a single customer used it before sellers 
burned it for commercial reasons or hw wasn't workable, team was cut, etc.

I can't see how if I have a physical NIC for it on my desk here makes
much difference one way or the other.

The alternative is much worse someone builds a team of engineers locks
them up they build some interesting pieces and we never get to see it
because we tried to block someone from opensourcing their driver?
Eventually they need some kernel changes and than we block those too
because we didn't allow the driver that was the use case? This seems
wrong to me.

Anyways we have zero ways to enforce such a policy. Have vendors
ship a NIC to somebody with the v0 of the patch set? Attach a picture? 
Even if vendor X claims they will have a product in N months and
than only sells it to qualified customers what to do we do then.
Driver author could even believe the hardware will be available
when they post the driver, but business may change out of hands
of the developer.

I'm 100% on letting this through assuming Alex is on top of feedback
and the code is good. I think any other policy would be very ugly
to enforce, prove, and even understand. Obviously code and architecture
debates I'm all for. Ensuring we have a trusted, experienced person
signed up to review code, address feedback, fix whatever syzbot finds
and so on is also a must I think. I'm sure Alex will take care of
it.

Thanks,
John

  reply	other threads:[~2024-04-04 21:59 UTC|newest]

Thread overview: 163+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-03 20:08 [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface Alexander Duyck
2024-04-03 20:08 ` [net-next PATCH 01/15] PCI: Add Meta Platforms vendor ID Alexander Duyck
2024-04-03 20:20   ` Bjorn Helgaas
2024-04-03 20:08 ` [net-next PATCH 02/15] eth: fbnic: add scaffolding for Meta's NIC driver Alexander Duyck
2024-04-03 20:33   ` Andrew Lunn
2024-04-03 20:47     ` Alexander Duyck
2024-04-03 21:17       ` Andrew Lunn
2024-04-03 21:51         ` Alexander Duyck
2024-04-03 22:20           ` Andrew Lunn
2024-04-03 23:27             ` Alexander Duyck
2024-04-03 20:08 ` [net-next PATCH 03/15] eth: fbnic: Allocate core device specific structures and devlink interface Alexander Duyck
2024-04-03 20:35   ` Bjorn Helgaas
2024-04-03 20:08 ` [net-next PATCH 04/15] eth: fbnic: Add register init to set PCIe/Ethernet device config Alexander Duyck
2024-04-03 20:46   ` Andrew Lunn
2024-04-10 20:31     ` Jacob Keller
2024-04-03 20:08 ` [net-next PATCH 05/15] eth: fbnic: add message parsing for FW messages Alexander Duyck
2024-04-03 21:07   ` Jeff Johnson
2024-04-03 20:08 ` [net-next PATCH 06/15] eth: fbnic: add FW communication mechanism Alexander Duyck
2024-04-03 20:08 ` [net-next PATCH 07/15] eth: fbnic: allocate a netdevice and napi vectors with queues Alexander Duyck
2024-04-03 20:58   ` Andrew Lunn
2024-04-03 22:15     ` Alexander Duyck
2024-04-03 22:26       ` Andrew Lunn
2024-04-03 20:08 ` [net-next PATCH 08/15] eth: fbnic: implement Tx queue alloc/start/stop/free Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 09/15] eth: fbnic: implement Rx " Alexander Duyck
2024-04-04 11:42   ` kernel test robot
2024-04-03 20:09 ` [net-next PATCH 10/15] eth: fbnic: Add initial messaging to notify FW of our presence Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 11/15] eth: fbnic: Enable Ethernet link setup Alexander Duyck
2024-04-03 21:11   ` Andrew Lunn
2024-04-05 21:51   ` Andrew Lunn
2024-04-21 23:21     ` Alexander Duyck
2024-04-22 15:52       ` Andrew Lunn
2024-04-22 18:59         ` Alexander H Duyck
2024-04-03 20:09 ` [net-next PATCH 12/15] eth: fbnic: add basic Tx handling Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 13/15] eth: fbnic: add basic Rx handling Alexander Duyck
2024-04-09 11:47   ` Yunsheng Lin
2024-04-09 15:08     ` Alexander Duyck
2024-04-10 11:54       ` Yunsheng Lin
2024-04-10 15:03         ` Alexander Duyck
2024-04-12  8:43           ` Yunsheng Lin
2024-04-12  9:47             ` Yunsheng Lin
2024-04-12 15:05             ` Alexander Duyck
2024-04-15 13:19               ` Yunsheng Lin
2024-04-15 15:03                 ` Alexander Duyck
2024-04-15 17:11                   ` Jakub Kicinski
2024-04-15 18:03                     ` Alexander Duyck
2024-04-15 18:19                       ` Jakub Kicinski
2024-04-15 18:55                         ` Alexander Duyck
2024-04-15 22:01                           ` Jakub Kicinski
2024-04-15 23:57                             ` Alexander Duyck
2024-04-16  0:24                               ` Jakub Kicinski
2024-04-16 13:25                             ` Yunsheng Lin
2024-04-16 14:35                               ` Alexander Duyck
2024-04-16 14:05                       ` Alexander Lobakin
2024-04-16 14:46                         ` Alexander Duyck
2024-04-16 18:26                           ` Andrew Lunn
2024-04-17  8:14                           ` Leon Romanovsky
2024-04-17 16:09                             ` Alexander Duyck
2024-04-17 10:39                           ` Alexander Lobakin
2024-04-03 20:09 ` [net-next PATCH 14/15] eth: fbnic: add L2 address programming Alexander Duyck
2024-04-03 20:09 ` [net-next PATCH 15/15] eth: fbnic: write the TCAM tables used for RSS control and Rx to host Alexander Duyck
2024-04-03 20:42 ` [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface Bjorn Helgaas
2024-04-04 11:37 ` Jiri Pirko
2024-04-04 14:45   ` Alexander Duyck
2024-04-04 15:24     ` Andrew Lunn
2024-04-04 15:37       ` Jakub Kicinski
2024-04-05  3:08         ` David Ahern
2024-04-04 15:36     ` Jiri Pirko
2024-04-04 18:35       ` Andrew Lunn
2024-04-04 19:05         ` Leon Romanovsky
2024-04-04 19:22       ` Alexander Duyck
2024-04-04 20:25         ` Jakub Kicinski
2024-04-04 21:59           ` John Fastabend [this message]
2024-04-04 23:50             ` Jakub Kicinski
2024-04-05  0:11               ` Alexander Duyck
2024-04-05  2:38                 ` Jakub Kicinski
2024-04-05 15:41                   ` Alexander Duyck
2024-04-08  6:18                     ` Leon Romanovsky
2024-04-08 15:26                       ` Alexander Duyck
2024-04-08 18:41                         ` Leon Romanovsky
2024-04-08 20:43                           ` Alexander Duyck
2024-04-08 21:49                             ` Florian Fainelli
2024-04-08 21:52                               ` Florian Fainelli
2024-04-09  8:18                             ` Leon Romanovsky
2024-04-09 14:43                               ` Alexander Duyck
2024-04-09 15:39                                 ` Jason Gunthorpe
2024-04-09 16:31                                   ` Alexander Duyck
2024-04-09 17:12                                     ` Jason Gunthorpe
2024-04-09 18:38                                       ` Alexander Duyck
2024-04-09 18:54                                         ` Jason Gunthorpe
2024-04-09 20:03                                           ` Alexander Duyck
2024-04-09 23:11                                             ` Jason Gunthorpe
2024-04-10  9:37                                             ` Jiri Pirko
2024-04-09 19:15                                         ` Leon Romanovsky
2024-04-05  7:11                 ` Paolo Abeni
2024-04-05 12:26                   ` Jason Gunthorpe
2024-04-05 13:06                     ` Daniel Borkmann
2024-04-05 14:24                     ` Alexander Duyck
2024-04-05 15:17                       ` Jason Gunthorpe
2024-04-05 18:38                         ` Alexander Duyck
2024-04-05 19:02                           ` Jason Gunthorpe
2024-04-06 16:05                             ` Alexander Duyck
2024-04-06 16:49                               ` Andrew Lunn
2024-04-06 17:16                                 ` Alexander Duyck
2024-04-08 15:04                               ` Jakub Kicinski
2024-04-08 19:50                               ` Mina Almasry
2024-04-08 11:50                           ` Jiri Pirko
2024-04-08 15:46                             ` Alexander Duyck
2024-04-08 16:51                               ` Jiri Pirko
2024-04-08 17:32                                 ` John Fastabend
2024-04-09 11:01                                   ` Jiri Pirko
2024-04-09 13:11                                     ` Alexander Lobakin
2024-04-09 13:18                                       ` Jason Gunthorpe
2024-04-09 14:08                                       ` Jakub Kicinski
2024-04-09 14:27                                         ` Jakub Kicinski
2024-04-09 14:41                                       ` Jiri Pirko
2024-04-10 11:45                                         ` Alexander Lobakin
2024-04-10 12:12                                           ` Jiri Pirko
2024-04-08 21:36                                 ` Florian Fainelli
2024-04-09 10:56                                   ` Jiri Pirko
2024-04-09 13:05                                     ` Florian Fainelli
2024-04-09 14:28                                       ` Jiri Pirko
2024-04-09 17:42                                         ` Florian Fainelli
2024-04-09 18:38                                           ` Leon Romanovsky
2024-04-08 18:16                               ` Jason Gunthorpe
2024-04-09 16:53                       ` Edward Cree
2024-04-08 11:37                   ` Jiri Pirko
2024-04-04 23:50             ` Alexander Duyck
2024-04-08 11:05             ` Jiri Pirko
2024-04-08 10:54         ` Jiri Pirko
2024-04-05 14:01 ` Przemek Kitszel
2024-04-06 16:53   ` Alexander Duyck
2024-04-09 20:51 ` Jakub Kicinski
2024-04-09 21:06   ` Willem de Bruijn
2024-04-10  7:26     ` Jiri Pirko
2024-04-10 21:30       ` Jacob Keller
2024-04-10 22:19         ` Andrew Lunn
2024-04-11  0:31           ` Jacob Keller
2024-04-09 23:42   ` Andrew Lunn
2024-04-10 15:56     ` Alexander Duyck
2024-04-10 20:01       ` Andrew Lunn
2024-04-10 21:07         ` Alexander Duyck
2024-04-10 22:37           ` Andrew Lunn
2024-04-11 16:00             ` Alexander Duyck
2024-04-11 17:32               ` Andrew Lunn
2024-04-11 23:12                 ` Alexander Duyck
2024-04-11  6:39           ` Jiri Pirko
2024-04-11 16:46             ` Alexander Duyck
2024-04-10  7:42   ` Jiri Pirko
2024-04-10 12:50     ` Przemek Kitszel
2024-04-10 13:46     ` Jakub Kicinski
2024-04-10 15:12       ` Jiri Pirko
2024-04-10 17:35         ` Jakub Kicinski
2024-04-10 17:39           ` Florian Fainelli
2024-04-10 17:56             ` Jakub Kicinski
2024-04-10 18:00               ` Florian Fainelli
2024-04-10 20:03                 ` Jakub Kicinski
2024-04-10 18:01               ` Alexander Duyck
2024-04-10 18:29                 ` Florian Fainelli
2024-04-10 19:58                   ` Jakub Kicinski
2024-04-10 22:03                     ` Jacob Keller
2024-04-11  6:31                       ` Jiri Pirko
2024-04-11 16:22                         ` Jacob Keller
2024-04-11  6:34                 ` 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=660f22c56a0a2_442282088b@john.notmuch \
    --to=john.fastabend@gmail.com \
    --cc=alexander.duyck@gmail.com \
    --cc=alexanderduyck@fb.com \
    --cc=bhelgaas@google.com \
    --cc=davem@davemloft.net \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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).