Linux PCI subsystem development
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: John Fastabend <john.fastabend@gmail.com>,
	Alexander Duyck <alexander.duyck@gmail.com>,
	Jason Gunthorpe <jgg@nvidia.com>, Paolo Abeni <pabeni@redhat.com>,
	Jakub Kicinski <kuba@kernel.org>,
	netdev@vger.kernel.org, bhelgaas@google.com,
	linux-pci@vger.kernel.org,
	Alexander Duyck <alexanderduyck@fb.com>,
	davem@davemloft.net, Christoph Hellwig <hch@lst.de>
Subject: Re: [net-next PATCH 00/15] eth: fbnic: Add network driver for Meta Platforms Host Network Interface
Date: Wed, 10 Apr 2024 14:12:43 +0200	[thread overview]
Message-ID: <ZhaCOwc9oUqbkZoF@nanopsycho> (raw)
In-Reply-To: <043179b5-d499-41cc-8d99-3f15b72a27cc@intel.com>

Wed, Apr 10, 2024 at 01:45:54PM CEST, aleksander.lobakin@intel.com wrote:
>From: Jiri Pirko <jiri@resnulli.us>
>Date: Tue, 9 Apr 2024 16:41:10 +0200
>
>> Tue, Apr 09, 2024 at 03:11:21PM CEST, aleksander.lobakin@intel.com wrote:
>>> From: Jiri Pirko <jiri@resnulli.us>
>>> Date: Tue, 9 Apr 2024 13:01:51 +0200
>>>
>>>> Mon, Apr 08, 2024 at 07:32:59PM CEST, john.fastabend@gmail.com wrote:
>>>>> Jiri Pirko wrote:
>>>>>> Mon, Apr 08, 2024 at 05:46:35PM CEST, alexander.duyck@gmail.com wrote:
>>>>>>> On Mon, Apr 8, 2024 at 4:51 AM Jiri Pirko <jiri@resnulli.us> wrote:
>>>>>>>>
>>>>>>>> Fri, Apr 05, 2024 at 08:38:25PM CEST, alexander.duyck@gmail.com wrote:
>>>>>>>>> On Fri, Apr 5, 2024 at 8:17 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
>>>>>>>>>>
>>>>>>>>>> On Fri, Apr 05, 2024 at 07:24:32AM -0700, Alexander Duyck wrote:
>>>>>>>>>>>> Alex already indicated new features are coming, changes to the core
>>>>>>>>>>>> code will be proposed. How should those be evaluated? Hypothetically
>>>>>>>>>>>> should fbnic be allowed to be the first implementation of something
>>>>>>>>>>>> invasive like Mina's DMABUF work? Google published an open userspace
>>>>>>>>>>>> for NCCL that people can (in theory at least) actually run. Meta would
>>>>>>>>>>>> not be able to do that. I would say that clearly crosses the line and
>>>>>>>>>>>> should not be accepted.
>>>>>>>>>>>
>>>>>>>>>>> Why not? Just because we are not commercially selling it doesn't mean
>>>>>>>>>>> we couldn't look at other solutions such as QEMU. If we were to
>>>>>>>>>>> provide a github repo with an emulation of the NIC would that be
>>>>>>>>>>> enough to satisfy the "commercial" requirement?
>>>>>>>>>>
>>>>>>>>>> My test is not "commercial", it is enabling open source ecosystem vs
>>>>>>>>>> benefiting only proprietary software.
>>>>>>>>>
>>>>>>>>> Sorry, that was where this started where Jiri was stating that we had
>>>>>>>>> to be selling this.
>>>>>>>>
>>>>>>>> For the record, I never wrote that. Not sure why you repeat this over
>>>>>>>> this thread.
>>>>>>>
>>>>>>> Because you seem to be implying that the Meta NIC driver shouldn't be
>>>>>>> included simply since it isn't going to be available outside of Meta.
>>>
>>> BTW idpf is also not something you can go and buy in a store, but it's
>>> here in the kernel. Anyway, see below.
>> 
>> IDK, why so many people in this thread are so focused on "buying" nic.
>> IDPF device is something I assume one may see on a VM hosted in some
>> cloud, isn't it? If yes, it is completely legit to have it in. Do I miss
>> something?
>
>Anyhow, we want the upstream Linux kernel to work out of box on most
>systems. Rejecting this driver basically encourages to still prefer
>OOT/proprietary crap.

Totally true. Out of the box on as many systems as possible. This is not
the case. Can you show me an example of a person outside-of-Meta can
benefit from using this driver out-of-box?


>
>> 
>> 
>>>
>>>>>>> The fact is Meta employs a number of kernel developers and as a result
>>>>>>> of that there will be a number of kernel developers that will have
>>>>>>> access to this NIC and likely do development on systems containing it.
>>>
>>> [...]
>>>
>>>>> Vendors would happily spin up a NIC if a DC with scale like this
>>>>> would pay for it. They just don't advertise it in patch 0/X,
>>>>> "adding device for cloud provider foo".
>>>>>
>>>>> There is no difference here. We gain developers, we gain insights,
>>>>> learnings and Linux and OSS drivers are running on another big
>>>>> DC. They improve things and find bugs they upstream them its a win.
>>>>>
>>>>> The opposite is also true if we exclude a driver/NIC HW that is
>>>>> running on major DCs we lose a lot of insight, experience, value.
>>>>
>>>> Could you please describe in details and examples what exactly is we
>>>> are about to loose? I don't see it.
>>>
>>> As long as driver A introduces new features / improvements / API /
>>> whatever to the core kernel, we benefit from this no matter whether I'm
>>> actually able to run this driver on my system.
>>>
>>> Some drivers even give us benefit by that they are of good quality (I
>>> don't speak for this driver, just some hypothetical) and/or have
>>> interesting design / code / API / etc. choices. The drivers I work on
>>> did gain a lot just from that I was reading new commits / lore threads
>>> and look at changes in other drivers.
>>>
>>> I saw enough situations when driver A started using/doing something the
>>> way it wasn't ever done anywhere before, and then more and more drivers
>>> stated doing the same thing and at the end it became sorta standard.
>> 
>> So bottom line is, the unused driver *may* introduce some features and
>> *may* provide as an example of how to do things for other people.
>> Is this really that beneficial for the community that it overweights
>> the obvious cons (not going to repeat them)?
>> 
>> Like with any other patch/set we merge in, we always look at the cons
>> and pros. I'm honestly surprised that so many people here
>> want to make exception for Meta's internal toy project.
>
>It's not me who wants to make an exception. I haven't ever seen a driver
>rejected due to "it can be used only somewhere where I can't go", so
>looks like it's you who wants to make an exception :>

Could you please point me to some other existing driver for device
that does not exist (/exist only at some person's backyard)?


>
>Thanks,
>Olek

  reply	other threads:[~2024-04-10 12:12 UTC|newest]

Thread overview: 106+ 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: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
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 [this message]
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=ZhaCOwc9oUqbkZoF@nanopsycho \
    --to=jiri@resnulli.us \
    --cc=aleksander.lobakin@intel.com \
    --cc=alexander.duyck@gmail.com \
    --cc=alexanderduyck@fb.com \
    --cc=bhelgaas@google.com \
    --cc=davem@davemloft.net \
    --cc=hch@lst.de \
    --cc=jgg@nvidia.com \
    --cc=john.fastabend@gmail.com \
    --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