ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Leon Romanovsky <leon@kernel.org>,
	 James Bottomley <James.Bottomley@hansenpartnership.com>,
	Jiri Kosina <jikos@kernel.org>,
	 Dan Williams <dan.j.williams@intel.com>,
	ksummit@lists.linux.dev,  linux-cxl@vger.kernel.org,
	linux-rdma@vger.kernel.org, netdev@vger.kernel.org,
	 jgg@nvidia.com
Subject: Re: [MAINTAINERS SUMMIT] Device Passthrough Considered Harmful?
Date: Mon, 29 Jul 2024 11:56:45 +0200	[thread overview]
Message-ID: <CAPybu_0vNbwO6NkWb_P7F+1TZtddmAAgC69X8c0WtZ5P2JoeBg@mail.gmail.com> (raw)
In-Reply-To: <20240728112358.GB30973@pendragon.ideasonboard.com>

On Sun, Jul 28, 2024 at 1:24 PM Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> On Fri, Jul 26, 2024 at 05:40:50PM +0200, Ricardo Ribalda Delgado wrote:
> > On Fri, Jul 26, 2024 at 3:11 PM Laurent Pinchart
> > <laurent.pinchart@ideasonboard.com> wrote:
> > >
> > > On Fri, Jul 26, 2024 at 10:02:27AM +0200, Ricardo Ribalda Delgado wrote:
> > > > On Thu, Jul 25, 2024 at 9:44 PM Laurent Pinchart wrote:
> > > > > On Thu, Jul 25, 2024 at 04:20:35PM +0300, Leon Romanovsky wrote:
> > > > > > On Thu, Jul 25, 2024 at 03:02:13PM +0200, Ricardo Ribalda Delgado wrote:
> > > > > > > On Thu, Jul 25, 2024 at 2:23 PM Leon Romanovsky wrote:
> > > > > > > > On Thu, Jul 25, 2024 at 11:26:38AM +0200, Ricardo Ribalda Delgado wrote:
> > > > > > > > > On Wed, Jul 24, 2024 at 10:02 PM Laurent Pinchart wrote:
> > > > > > > >
> > > > > > > > <...>
> > > > > > > >
> > > > > > > > > It would be great to define what are the free software communities
> > > > > > > > > here. Distros and final users are also "free software communities" and
> > > > > > > > > they do not care about niche use cases covered by proprietary
> > > > > > > > > software.
> > > > > > > >
> > > > > > > > Are you certain about that?
> > > > > > >
> > > > > > > As a user, and as an open source Distro developer I have a small hint.
> > > > > > > But you could also ask users what they think about not being able to
> > > > > > > use their notebook's cameras. The last time that I could not use some
> > > > > > > basic hardware from a notebook with Linux was 20 years ago.
> > > > > >
> > > > > > Lucky you, I still have consumer hardware (speaker) that doesn't work
> > > > > > with Linux, and even now, there is basic hardware in my current
> > > > > > laptop (HP docking station) that doesn't work reliably in Linux.
> > > > > >
> > > > > > > > > They only care (and should care) about normal workflows.
> > > > > > > >
> > > > > > > > What is a normal workflow?
> > > > > > > > Does it mean that if user bought something very expensive he
> > > > > > > > should not be able to use it with free software, because his
> > > > > > > > usage is different from yours?
> > > > > > > >
> > > > > > > > Thanks
> > > > > > >
> > > > > > > It means that we should not block the standard usage for 99% of the
> > > > > > > population just because 1% of the users cannot do something fancy with
> > > > > > > their device.
> > > > > >
> > > > > > Right, the problem is that in some areas the statistics slightly different.
> > > > > > 99% population is blocked because 1% of the users don't need it and
> > > > > > don't think that it is "normal" flow.
> > > > > >
> > > > > > > Let me give you an example. When I buy a camera I want to be able to
> > > > > > > do Video Conferencing and take some static photos of documents. I do
> > > > > > > not care about: automatic makeup, AI generated background, unicorn
> > > > > > > filters, eyes recentering... But we need to give a way to vendors to
> > > > > > > implement those things closely, without the marketing differentiators,
> > > > > > > vendors have zero incentive to invest in Linux, and that affects all
> > > > > > > the population.
> > > > >
> > > > > I've seen these kind of examples being repeatedly given in discussions
> > > > > related to camera ISP support in Linux. They are very misleading. These
> > > > > are not the kind of features that are relevant for the device
> > > > > pass-through discussion these day. Those are high-level use cases
> > > > > implemented in userspace, and vendors can ship any closed-source
> > > > > binaries they want there. What I care about is the features exposed by
> > > > > the kernel to userspace API.
> > > >
> > > > The ISPs are gradually becoming programmable devices and they indeed
> > > > help during all of those examples.
> > >
> > > I'd like to see more technical information to substantiate this claim.
> > > So far what I've sometimes seen is ISPs that include programmable
> > > elements, but hiding those behind a firmware that exposes a fixed
> > > (configurable) pipeline. I've also heard of attempts to expose some of
> > > that programmability to the operating system, which were abandoned in
> > > the end due to lack usefulness.
> > >
> > > > Userspace needs to send/receive information from the ISP, and that is
> > > > exactly what vendors want to keep in the close.
> > >
> > > But that's exactly what we need to implement an open userspace ecosystem
> > > :-)
> > >
> > > > Describing how they implement those algorithms is a patent minefield
> > > > and their differentiating factor.
> > >
> > > Those are also arguments I've heard many times before. The
> > > differentiating factor for cameras today is mostly in userspace ISP
> > > control algorithms, and nobody is telling vendors they need to open all
> > > that.
> >
> > I disagree. The differentiating factor is what the ISP is capable of
> > doing and how they do it. Otherwise we would not see new ISPs in the
> > market.
>
> Hardware certainly evolves, but it's far from being the main
> differentiating factor in the markets and use cases you're usually
> referring to.
>
> > If you define the arguments passed to an ISP you are defining the
> > algorithm, and that is a trade secret and/or a patent violation.
>
> Are you confusing ISP processing blocks, sometimes referred to as
> algorithms, and ISP control algorithms ? There is absolutely no way to
> do anything with an ISP, not even the bare minimum, if you don't know
> what parameters to pass to it.

Any ISP released in the last few years has *hundreds of thousands* of
parameters.

We only modify hundreds of parameters during runtime. Those are the
ones we need to be documented.

If we enforce a "usable open camera stack", we will have the
documentation and the code needed to use the ISP.

Asking vendors to document *ALL* the parameters means describing how
they have implemented the internals of the ISP camera algorithms.


>
> > > When it comes to patents, we all know how software patents is a
> > > minefield, and hardware is also affected. I can't have much sympathy for
> > > this argument though, those patents mostly benefit the largest players
> > > in the market, and those are the ones who currently claim they can't
> > > open anything due to patents.
> >
> > Big players do not usually sue each other. The big problem is patent
> > trolls that "shoot at everything that moves".
> >
> > I dislike patents, but it is the world we have to live in. No vendor
> > is going to take our approach if they risk a multi million dollar
> > lawsuit.
>
> When was the last time anyone heard of big players pushing to reform the
> patent system ? At best there are initiatives such as OIN, which some
> large companies have supporting. It's still a workaround though.
>
> > > > > > > This challenge seems to be solved for GPUs. I am using my AMD GPU
> > > > > > > freely and my nephew can install the amdgpu-pro proprietary user space
> > > > > > > driver to play duke nukem (or whatever kids play now) at 2000 fps.
> > > > > > >
> > > > > > > There are other other subsystems that allow vendor passthrough and
> > > > > > > their ecosystem has not collapsed.
> > > > > >
> > > > > > Yes, I completely agree with you on that.
> > > > > >
> > > > > > > Can we have some general guidance of what is acceptable? Can we define
> > > > > > > together the "normal workflow" and focus on a *full* open source
> > > > > > > implementation of that?
> > > > > >
> > > > > > I don't think that is possible to define "normal workflow". Requirement
> > > > > > to have open-source counterpart to everything exposed through UAPI is a
> > > > > > valid one. I'm all for that.
> > > > >
> > > > > That's my current opinion as well, as least when it comes to the kernel
> > > > > areas I mostly work with.
>
> --
> Regards,
>
> Laurent Pinchart



-- 
Ricardo Ribalda

  reply	other threads:[~2024-07-29  9:57 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-08 22:26 Dan Williams
2024-07-09  6:09 ` Christoph Hellwig
2024-07-09 19:43   ` Dan Williams
2024-07-10 13:05     ` Jason Gunthorpe
2024-07-21 18:51       ` Laurent Pinchart
2024-07-22 13:27         ` Jason Gunthorpe
2024-07-09 10:01 ` Greg KH
2024-07-09 12:25   ` Leon Romanovsky
2024-07-09 12:33     ` Greg KH
2024-07-09 12:47       ` Leon Romanovsky
2024-07-11 14:07         ` Jason Gunthorpe
2024-07-09 20:09   ` Dan Williams
2024-07-09 16:02 ` James Bottomley
2024-07-09 22:15   ` Dan Williams
2024-07-10 13:22     ` Jonathan Cameron
2024-07-11 11:00       ` Jonathan Cameron
2024-07-11 15:05       ` Jason Gunthorpe
2024-07-11 17:01         ` Jonathan Cameron
2024-07-11 17:45           ` Jason Gunthorpe
2024-07-11 16:36       ` Dan Williams
2024-07-12 10:37         ` Jonathan Cameron
2024-07-21 19:25     ` Laurent Pinchart
2024-07-22  7:31       ` Leon Romanovsky
2024-07-22  8:53         ` Laurent Pinchart
2024-07-22 10:44           ` Leon Romanovsky
2024-07-22 11:10             ` Laurent Pinchart
2024-07-22 13:28               ` Leon Romanovsky
2024-07-22 14:13                 ` Laurent Pinchart
2024-07-22 14:43                   ` Jason Gunthorpe
2024-07-22 10:42       ` Ricardo Ribalda Delgado
2024-07-22 11:18         ` Laurent Pinchart
2024-07-22 11:56           ` Ricardo Ribalda Delgado
2024-07-25 20:01             ` Laurent Pinchart
2024-07-26  8:04               ` Ricardo Ribalda Delgado
2024-07-26 10:59                 ` Laurent Pinchart
2024-07-26 15:40                   ` Ricardo Ribalda Delgado
2024-07-28 17:18                     ` Laurent Pinchart
2024-07-29  9:58                       ` Ricardo Ribalda Delgado
2024-07-29 10:31                         ` Laurent Pinchart
2024-07-31 11:54                         ` Sakari Ailus
2024-07-31 13:15                           ` Daniel Vetter
2024-08-02 15:07                             ` Laurent Pinchart
2024-08-13 10:17                             ` Tomasz Figa
2024-08-13 10:26                               ` Laurent Pinchart
2024-08-13 10:33                                 ` Tomasz Figa
2024-08-13 10:58                                   ` Laurent Pinchart
2024-07-11 13:50   ` Jason Gunthorpe
2024-07-11 15:16     ` James Bottomley
2024-07-11 16:29       ` Jason Gunthorpe
2024-07-23 11:20 ` Jiri Kosina
2024-07-23 11:36   ` James Bottomley
2024-07-23 23:22     ` Jiri Kosina
2024-07-24 20:12       ` James Bottomley
2024-07-24 20:00     ` Laurent Pinchart
2024-07-24 20:37       ` James Bottomley
2024-07-24 21:10         ` Steven Rostedt
2024-07-25 19:31         ` Laurent Pinchart
2024-07-25 19:43           ` Jason Gunthorpe
2024-07-25 20:07             ` Laurent Pinchart
2024-07-25 23:39               ` Jason Gunthorpe
2024-07-26  8:04               ` Ricardo Ribalda Delgado
2024-07-26 12:49                 ` Laurent Pinchart
2024-07-26 13:11                   ` Jason Gunthorpe
2024-07-26 14:22                     ` Laurent Pinchart
2024-07-26 15:43                       ` Ricardo Ribalda Delgado
2024-07-28 15:25                         ` Laurent Pinchart
2024-07-29  9:57                           ` Ricardo Ribalda Delgado
2024-07-29 14:20                       ` Jason Gunthorpe
2024-07-26  8:03           ` Ricardo Ribalda Delgado
2024-07-26 13:22             ` Laurent Pinchart
2024-07-26 15:44               ` Ricardo Ribalda Delgado
2024-07-28 17:02                 ` Laurent Pinchart
2024-07-26 16:49           ` James Bottomley
2024-07-28 16:44             ` Laurent Pinchart
2024-07-26 17:33         ` Daniel Vetter
2024-07-29 14:10           ` Jason Gunthorpe
2024-07-25  9:26       ` Ricardo Ribalda Delgado
2024-07-25 10:51         ` Wolfram Sang
2024-07-25 12:23         ` Leon Romanovsky
2024-07-25 13:02           ` Ricardo Ribalda Delgado
2024-07-25 13:20             ` Leon Romanovsky
2024-07-25 13:29               ` Mark Brown
2024-07-25 14:18                 ` Leon Romanovsky
2024-07-25 14:22                   ` James Bottomley
2024-07-25 17:37                     ` Leon Romanovsky
2024-07-26 13:58                       ` James Bottomley
2024-07-25 19:42               ` Laurent Pinchart
2024-07-26  8:02                 ` Ricardo Ribalda Delgado
2024-07-26 13:11                   ` Laurent Pinchart
2024-07-26 15:40                     ` Ricardo Ribalda Delgado
2024-07-28 11:23                       ` Laurent Pinchart
2024-07-29  9:56                         ` Ricardo Ribalda Delgado [this message]
2024-07-29 10:38                           ` Laurent Pinchart
2024-07-26 16:01                     ` James Bottomley
2024-07-26 17:56                       ` Laurent Pinchart
2024-07-25 13:44             ` Steven Rostedt
2024-07-26 14:27 ` Laurent Pinchart
2024-07-26 15:34   ` Steven Rostedt
2024-07-28 16:03     ` Laurent Pinchart
2024-07-27  0:16   ` Dan Williams
2024-07-28 11:18     ` Laurent Pinchart
2024-07-28 15:16       ` Greg KH
2024-07-28 15:34         ` Laurent Pinchart
2024-07-28 15:49         ` James Bottomley
2024-07-29  6:10           ` Greg KH
2024-07-31 12:33             ` James Bottomley
2024-07-31 12:45               ` Laurent Pinchart
2024-08-01 14:41               ` Jason Gunthorpe
2024-08-07  0:06                 ` Dan Williams
2024-08-07  0:13                   ` James Bottomley
2024-08-16 11:12                   ` Hannes Reinecke
2024-07-29 14:56           ` Jakub Kicinski
2024-07-29 15:16             ` Greg KH
2024-07-29 15:29             ` Jason Gunthorpe
2024-07-29 12:45 ` Jonathan Cameron
2024-07-29 13:38   ` Borislav Petkov
2024-07-29 14:29     ` Jonathan Cameron
2024-07-29 14:58       ` Jason Gunthorpe
2024-07-30 13:19         ` Borislav Petkov
2024-08-01 14:23           ` Jason Gunthorpe
2024-07-29 15:42   ` Jason Gunthorpe
2024-07-29 22:37     ` Dan Williams
2024-07-30  7:13       ` Daniel Vetter
2024-08-01 14:22         ` Jason Gunthorpe
2024-08-06  7:14           ` Daniel Vetter
2024-08-06 13:04             ` 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=CAPybu_0vNbwO6NkWb_P7F+1TZtddmAAgC69X8c0WtZ5P2JoeBg@mail.gmail.com \
    --to=ricardo.ribalda@gmail.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=dan.j.williams@intel.com \
    --cc=jgg@nvidia.com \
    --cc=jikos@kernel.org \
    --cc=ksummit@lists.linux.dev \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=leon@kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /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