netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: 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
Subject: Re: [MAINTAINERS SUMMIT] Device Passthrough Considered Harmful?
Date: Thu, 11 Jul 2024 10:50:30 -0300	[thread overview]
Message-ID: <20240711135030.GD1482543@nvidia.com> (raw)
In-Reply-To: <3b9631cf12f451fc08f410255ebbba23081ada7c.camel@HansenPartnership.com>

On Tue, Jul 09, 2024 at 09:02:25AM -0700, James Bottomley wrote:

> For NVMe and net we do have SPDK and DPDK.  What I find is that people
> tend to use them for niche use cases (like the NVMe KV command set) or
> obscure network routers.  Even though the claim they both make is to
> get the kernel out of the way and do stuff "way faster" the difficulty
> they create by bypassing everything is quite a high burden.

[..]
 
> What all of the prior pass through's taught us is that if the use case
> is big enough it will get pulled into the kernel and the kernel will
> usually manage it better (DB users).  If it remains a niche use case it
> will likely remain out of the kernel, but we won't be hurt by it (NVME
> KV protocol) and sometimes it doesn't really matter and the device
> manufacturers will sort it out on their own (USB tokens).

I don't see it as being linked to big enough use case at all.

The kernel gets involved if there are good technical reasons to do
so. Databases running over real filesystems with O_DIRECT is really
technically better than raw block devices.

While DPDK shows the opposite, userspace is the technically better
option. This is now shown at scale. DPDK is not some niche. A big
chunk of internet traffic is going through DPDKs, especially for
mobile. Many ORAN solutions include DPDK on Linux.

What has been improved kernel-side is the intergation. DPDK
deployments now often use RDMA raw queue pairs instead of VFIO, which
laregly eliminates the "high burden".

There are many other cases, like DPDK, where the right answer is to
reduce the kernel involvement. It is not so simple that things always
get pulled into the kernel.

Jason

  parent reply	other threads:[~2024-07-11 13:50 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-08 22:26 [MAINTAINERS SUMMIT] Device Passthrough Considered Harmful? 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 [this message]
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
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=20240711135030.GD1482543@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=dan.j.williams@intel.com \
    --cc=ksummit@lists.linux.dev \
    --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;
as well as URLs for NNTP newsgroup(s).