ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Christoph Hellwig <hch@infradead.org>,
	Dan Williams <dan.j.williams@intel.com>
Cc: <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: Tue, 9 Jul 2024 12:43:50 -0700	[thread overview]
Message-ID: <668d92f68916f_102cc2947b@dwillia2-xfh.jf.intel.com.notmuch> (raw)
In-Reply-To: <ZozUJepl9_gnKnlv@infradead.org>

Christoph Hellwig wrote:
> Passthrough in general is useful, but the problem is that protocols
> aren't designed with it in mind.  Look at the list of command that
> affect too much state and we have to block in SCSI and NVMe.  And
> in NVMe I'm fighting a constant fight in the technical working group
> to not add new command that instantly disable the access control we've
> built into NVMe passthrough.   So IMHO passthrough can be good idea,
> but only if the protocol is designed for it, and protocol designer
> generally have a hard time how software works at all, never mind
> the futuristic concepts of layering, abstraction and access control.
> 

I think this protocol feedback from the kernel community to hardware
designers is top on the list of benefits for this discussion.

How to draw that "needs kernel mediation" line takes
kernel-developer-practitioner expertise.

The positive takeaway from the NVME experience in my mind is that no
doubt the NVME subsystem has blocked commands that hardware developers
prefer that Linux not filter. That filter is likely trivially bypassed
by repurposing some other non-filtered command to have the desired side
effect. Something like "write to a magic LBA == run filtered command".
The fact that those cynical hacks are not deployed and the technical
working group is still holding discussions on the proper protocol means
that hardware designers have a higher incentive to get it right than to
get it deployed.

The conversation seems to break down when it comes to "trust us this
passthrough is only for device-specific functionality with low cross
vendor or kernel appeal." How can we design protocols that have a
high-level of trust?

A "Command Effects Log" seems like that starting point, with trust that
cynical abuses of that contract have a higher cost than benefit, and
trust that the protocol limits the potential damage of such abuse.

  reply	other threads:[~2024-07-09 19:46 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 [this message]
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
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=668d92f68916f_102cc2947b@dwillia2-xfh.jf.intel.com.notmuch \
    --to=dan.j.williams@intel.com \
    --cc=hch@infradead.org \
    --cc=jgg@nvidia.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