virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: kvm@vger.kernel.org, maorg@nvidia.com,
	virtualization@lists.linux-foundation.org, jiri@nvidia.com,
	leonro@nvidia.com
Subject: Re: [PATCH vfio 11/11] vfio/virtio: Introduce a vfio driver over virtio devices
Date: Mon, 25 Sep 2023 14:16:30 -0400	[thread overview]
Message-ID: <20230925133637-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230922161928.GS13733@nvidia.com>

On Fri, Sep 22, 2023 at 01:19:28PM -0300, Jason Gunthorpe wrote:
> On Fri, Sep 22, 2023 at 11:39:19AM -0400, Michael S. Tsirkin wrote:
> > On Fri, Sep 22, 2023 at 09:25:01AM -0300, Jason Gunthorpe wrote:
> > > On Fri, Sep 22, 2023 at 11:02:50AM +0800, Jason Wang wrote:
> > > > On Fri, Sep 22, 2023 at 3:53 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
> > > > >
> > > > > On Thu, Sep 21, 2023 at 03:34:03PM -0400, Michael S. Tsirkin wrote:
> > > > >
> > > > > > that's easy/practical.  If instead VDPA gives the same speed with just
> > > > > > shadow vq then keeping this hack in vfio seems like less of a problem.
> > > > > > Finally if VDPA is faster then maybe you will reconsider using it ;)
> > > > >
> > > > > It is not all about the speed.
> > > > >
> > > > > VDPA presents another large and complex software stack in the
> > > > > hypervisor that can be eliminated by simply using VFIO.
> > > > 
> > > > vDPA supports standard virtio devices so how did you define
> > > > complexity?
> > > 
> > > As I said, VFIO is already required for other devices in these VMs. So
> > > anything incremental over base-line vfio-pci is complexity to
> > > minimize.
> > > 
> > > Everything vdpa does is either redundant or unnecessary compared to
> > > VFIO in these environments.
> > > 
> > > Jason
> > 
> > Yes but you know. There are all kind of environments.  I guess you
> > consider yours the most mainstream and important, and are sure it will
> > always stay like this.  But if there's a driver that does what you need
> > then you use that.
> 
> Come on, you are the one saying we cannot do things in the best way
> possible because you want your way of doing things to be the only way
> allowed. Which of us thinks "yours the most mainstream and important" ??
> 
> I'm not telling you to throw away VPDA, I'm saying there are
> legimitate real world use cases where VFIO is the appropriate
> interface, not VDPA.
> 
> I want choice, not dogmatic exclusion that there is Only One True Way.

I don't particularly think there's only one way, vfio is already there.
I am specifically thinking about this patch, for example it
muddies the waters a bit: normally I think vfio exposed device
with the same ID, suddenly it changes the ID as visible to the guest.
But again, whether doing this kind of thing is OK is more up to Alex than me.

I do want to understand if there's a use-case that vdpa does not address
simply because it might be worth while to extend it to do so, and a
bunch of people working on it are at Red Hat and I might have some input
into how that labor is allocated. But if the use-case is simply "has to
be vfio and not vdpa" then I guess not.




> > You really should be explaining what vdpa *does not* do that you
> > need.
> 
> I think I've done that enough, but if you have been following my
> explanation you should see that the entire point of this design is to
> allow a virtio device to be created inside a DPU to a specific
> detailed specification (eg an AWS virtio-net device, for instance)
> 
> The implementation is in the DPU, and only the DPU.
> 
> At the end of the day VDPA uses mediation and creates some
> RedHat/VDPA/Qemu virtio-net device in the guest. It is emphatically
> NOT a perfect recreation of the "AWS virtio-net" we started out with.
> 
> It entirely fails to achieve the most important thing it needs to do!

It could be that we are using mediation differently - in my world it's
when there's some host software on the path between guest and hardware,
and this qualifies.  The difference between what this patch does and
what vdpa does seems quantitative, not qualitative. Which might be
enough to motivate this work, I don't mind. But you seem to feel
it is qualitative and I am genuinely curious about it, because
if yes then it might lead e.g. the virtio standard in new directions.

I can *imagine* all kind of reasons to want to use vfio as compared to vdpa;
here are some examples I came up with, quickly:
- maybe you have drivers that poke at registers not in virtio spec:
  vfio allows that, vdpa by design does not
- maybe you are using vfio with a lot of devices already and don't want
  to special-case handling for virtio devices on the host
do any of the above motivations ring the bell? Some of the things you
said seem to hint at that. If yes maybe include this in the cover
letter.

There is also a question of capability. Specifically iommufd support
is lacking in vdpa (though there are finally some RFC patches to
address that). All this is fine, could be enough to motivate
a work like this one. But I am very curious to know if there
is any other capability lacking in vdpa. I asked already and you
didn't answer so I guess not?




> Yishai will rework the series with your remarks, we can look again on
> v2, thanks for all the input!
> 
> Jason

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  parent reply	other threads:[~2023-09-25 18:16 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-21 12:40 [PATCH vfio 00/11] Introduce a vfio driver over virtio devices Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 01/11] virtio-pci: Use virtio pci device layer vq info instead of generic one Yishai Hadas via Virtualization
2023-09-21 13:46   ` Michael S. Tsirkin
2023-09-26 19:13     ` Feng Liu via Virtualization
2023-09-27 18:09       ` Feng Liu via Virtualization
2023-09-27 21:24         ` Michael S. Tsirkin
2023-09-21 12:40 ` [PATCH vfio 02/11] virtio: Define feature bit for administration virtqueue Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 03/11] virtio-pci: Introduce admin virtqueue Yishai Hadas via Virtualization
2023-09-21 13:57   ` Michael S. Tsirkin
2023-09-26 19:23     ` Feng Liu via Virtualization
2023-09-27 18:12       ` Feng Liu via Virtualization
2023-09-27 21:27         ` Michael S. Tsirkin
2023-10-02 18:07           ` Feng Liu via Virtualization
2023-09-21 12:40 ` [PATCH vfio 04/11] virtio: Expose the synchronous command helper function Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 05/11] virtio-pci: Introduce admin command sending function Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 06/11] virtio-pci: Introduce API to get PF virtio device from VF PCI device Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 07/11] virtio-pci: Introduce admin commands Yishai Hadas via Virtualization
2023-09-24  5:18   ` kernel test robot
2023-09-25  3:18   ` kernel test robot
2023-09-21 12:40 ` [PATCH vfio 08/11] vfio/pci: Expose vfio_pci_core_setup_barmap() Yishai Hadas via Virtualization
2023-09-21 16:35   ` Alex Williamson
2023-09-26  9:45     ` Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 09/11] vfio/pci: Expose vfio_pci_iowrite/read##size() Yishai Hadas via Virtualization
2023-09-21 12:40 ` [PATCH vfio 10/11] vfio/virtio: Expose admin commands over virtio device Yishai Hadas via Virtualization
2023-09-21 13:08   ` Michael S. Tsirkin
2023-09-21 20:34   ` Michael S. Tsirkin
2023-09-26 10:51     ` Yishai Hadas via Virtualization
2023-09-26 11:25       ` Michael S. Tsirkin
2023-09-22  9:54   ` Michael S. Tsirkin
2023-09-26 11:14     ` Yishai Hadas via Virtualization
2023-09-26 11:41       ` Michael S. Tsirkin
     [not found]         ` <20230927131817.GA338226@nvidia.com>
2023-09-27 21:30           ` Michael S. Tsirkin
     [not found]             ` <20230927231600.GD339126@nvidia.com>
2023-09-28  5:26               ` Michael S. Tsirkin
2023-10-02  6:28         ` Christoph Hellwig
     [not found]           ` <20231002151320.GA650762@nvidia.com>
2023-10-05  8:49             ` Christoph Hellwig
     [not found]               ` <20231005111004.GK682044@nvidia.com>
2023-10-06 13:09                 ` Christoph Hellwig
     [not found]                   ` <20231010131031.GJ3952@nvidia.com>
2023-10-10 13:56                     ` Michael S. Tsirkin
     [not found]                       ` <20231010140849.GL3952@nvidia.com>
2023-10-10 14:54                         ` Michael S. Tsirkin
2023-10-10 15:09                           ` Yishai Hadas via Virtualization
2023-10-10 15:14                             ` Michael S. Tsirkin
2023-10-10 15:43                               ` Yishai Hadas via Virtualization
2023-10-10 15:58                                 ` Parav Pandit via Virtualization
2023-10-10 15:58                                 ` Michael S. Tsirkin
2023-10-10 16:09                                   ` Yishai Hadas via Virtualization
2023-10-10 20:42                                     ` Michael S. Tsirkin
2023-10-11  7:44                                       ` Yishai Hadas via Virtualization
2023-10-11  8:02                                         ` Michael S. Tsirkin
2023-10-11  8:58                                           ` Yishai Hadas via Virtualization
2023-10-11  9:03                                             ` Michael S. Tsirkin
2023-10-11 11:25                                               ` Yishai Hadas via Virtualization
2023-10-11  6:12                                 ` Christoph Hellwig
     [not found]                               ` <20231010155937.GN3952@nvidia.com>
2023-10-10 16:03                                 ` Michael S. Tsirkin
     [not found]                                   ` <20231010160712.GO3952@nvidia.com>
2023-10-10 16:21                                     ` Parav Pandit via Virtualization
2023-10-10 20:38                                       ` Michael S. Tsirkin
2023-10-11  6:13                                 ` Christoph Hellwig
2023-10-11  6:43                                   ` Michael S. Tsirkin
2023-10-11  6:59                                     ` Christoph Hellwig
2023-10-11  8:00                                       ` Parav Pandit via Virtualization
2023-10-11  8:10                                         ` Michael S. Tsirkin
     [not found]                                           ` <20231011121849.GV3952@nvidia.com>
2023-10-11 17:03                                             ` Michael S. Tsirkin
2023-10-11 17:05                                             ` Michael S. Tsirkin
2023-10-12 10:29                                         ` Zhu, Lingshan
     [not found]                                           ` <20231012132749.GK3952@nvidia.com>
2023-10-13 10:28                                             ` Zhu, Lingshan
2023-10-13 13:50                                               ` Michael S. Tsirkin
2023-10-16  8:33                                                 ` Zhu, Lingshan
2023-10-16  8:52                                                   ` Michael S. Tsirkin
2023-10-16  9:53                                                     ` Zhu, Lingshan
2023-10-11  8:12                                       ` Michael S. Tsirkin
2023-10-12 10:30                                       ` Zhu, Lingshan
2023-10-11  6:26                     ` Christoph Hellwig
     [not found]                       ` <20231011135709.GW3952@nvidia.com>
2023-10-11 14:17                         ` Christoph Hellwig
     [not found]                           ` <20231011145810.GZ3952@nvidia.com>
2023-10-11 16:59                             ` Michael S. Tsirkin
     [not found]                               ` <20231011171944.GA3952@nvidia.com>
2023-10-11 20:20                                 ` Michael S. Tsirkin
2023-09-21 12:40 ` [PATCH vfio 11/11] vfio/virtio: Introduce a vfio driver over virtio devices Yishai Hadas via Virtualization
2023-09-21 13:16   ` Michael S. Tsirkin
     [not found]     ` <20230921141125.GM13733@nvidia.com>
2023-09-21 14:16       ` Michael S. Tsirkin
     [not found]         ` <20230921164139.GP13733@nvidia.com>
2023-09-21 16:53           ` Michael S. Tsirkin
     [not found]             ` <20230921183926.GV13733@nvidia.com>
2023-09-21 19:13               ` Michael S. Tsirkin
     [not found]                 ` <20230921194946.GX13733@nvidia.com>
2023-09-21 20:45                   ` Michael S. Tsirkin
     [not found]                     ` <20230921225526.GE13733@nvidia.com>
2023-09-22  3:02                       ` Jason Wang
2023-09-22 11:23                       ` Michael S. Tsirkin
2023-09-22  3:01                   ` Jason Wang
     [not found]                     ` <20230922121132.GK13733@nvidia.com>
2023-09-25  2:34                       ` Jason Wang
     [not found]                         ` <20230925122607.GW13733@nvidia.com>
2023-09-25 19:44                           ` Michael S. Tsirkin
     [not found]                             ` <20230926004059.GM13733@nvidia.com>
2023-09-26  5:34                               ` Michael S. Tsirkin
2023-09-26  5:42                               ` Michael S. Tsirkin
     [not found]                                 ` <20230926135057.GO13733@nvidia.com>
2023-09-27 21:38                                   ` Michael S. Tsirkin
     [not found]                                     ` <20230927232005.GE339126@nvidia.com>
2023-09-28  5:31                                       ` Michael S. Tsirkin
2023-09-26  4:37                           ` Jason Wang
2023-09-26  5:33                             ` Parav Pandit via Virtualization
2023-09-21 19:17               ` Michael S. Tsirkin
     [not found]                 ` <20230921195115.GY13733@nvidia.com>
2023-09-21 20:55                   ` Michael S. Tsirkin
2023-09-25  4:44                     ` Zhu, Lingshan
2023-09-22  3:45               ` Zhu, Lingshan
2023-09-21 13:33   ` Michael S. Tsirkin
2023-09-21 16:43   ` Alex Williamson
     [not found]     ` <20230921165224.GR13733@nvidia.com>
2023-09-21 17:01       ` Michael S. Tsirkin
2023-09-21 17:09         ` Parav Pandit via Virtualization
2023-09-21 17:24           ` Michael S. Tsirkin
     [not found]         ` <20230921170709.GS13733@nvidia.com>
2023-09-21 17:21           ` Michael S. Tsirkin
     [not found]             ` <20230921174450.GT13733@nvidia.com>
2023-09-21 17:55               ` Michael S. Tsirkin
     [not found]                 ` <20230921181637.GU13733@nvidia.com>
2023-09-21 19:34                   ` Michael S. Tsirkin
     [not found]                     ` <20230921195345.GZ13733@nvidia.com>
2023-09-21 20:16                       ` Michael S. Tsirkin
2023-09-22  3:02                         ` Jason Wang
     [not found]                           ` <20230922122246.GN13733@nvidia.com>
2023-09-22 12:25                             ` Parav Pandit via Virtualization
2023-09-22 15:13                               ` Michael S. Tsirkin
     [not found]                                 ` <20230922151534.GR13733@nvidia.com>
2023-09-22 15:40                                   ` Michael S. Tsirkin
     [not found]                                     ` <20230922162233.GT13733@nvidia.com>
2023-09-25 17:36                                       ` Michael S. Tsirkin
2023-09-25  2:30                               ` Jason Wang
2023-09-25  8:26                                 ` Parav Pandit via Virtualization
2023-09-25 18:36                                   ` Michael S. Tsirkin
2023-09-26  2:34                                     ` Zhu, Lingshan
2023-09-26  3:45                                     ` Parav Pandit via Virtualization
2023-09-26  4:37                                       ` Jason Wang
2023-10-12 10:52                                       ` Michael S. Tsirkin
2023-10-12 11:11                                         ` Parav Pandit via Virtualization
2023-10-12 11:30                                           ` Michael S. Tsirkin
2023-10-12 11:40                                             ` Parav Pandit via Virtualization
2023-09-26  2:32                                   ` Jason Wang
2023-09-26  4:01                                     ` Parav Pandit via Virtualization
2023-09-26  4:37                                       ` Jason Wang
2023-09-26  5:27                                         ` Parav Pandit via Virtualization
2023-09-26 11:49                                     ` Michael S. Tsirkin
2023-10-08  4:28                                       ` Jason Wang
     [not found]                         ` <20230921224836.GD13733@nvidia.com>
2023-09-22  9:47                           ` Michael S. Tsirkin
     [not found]                             ` <20230922122328.GO13733@nvidia.com>
2023-09-22 15:45                               ` Michael S. Tsirkin
2023-09-22  3:02                       ` Jason Wang
     [not found]                         ` <20230922122501.GP13733@nvidia.com>
2023-09-22 15:39                           ` Michael S. Tsirkin
     [not found]                             ` <20230922161928.GS13733@nvidia.com>
2023-09-25 18:16                               ` Michael S. Tsirkin [this message]
     [not found]                                 ` <20230925185318.GK13733@nvidia.com>
2023-09-25 19:52                                   ` Michael S. Tsirkin
2023-09-21 19:58   ` Alex Williamson
     [not found]     ` <20230921200121.GA13733@nvidia.com>
2023-09-21 20:20       ` Michael S. Tsirkin
2023-09-21 20:59         ` Alex Williamson
     [not found]     ` <20230922123708.GA130749@nvidia.com>
2023-09-22 12:59       ` Parav Pandit via Virtualization
2023-09-26 15:20     ` Yishai Hadas via Virtualization
2023-09-26 17:00       ` Michael S. Tsirkin
2023-10-02  4:38         ` Parav Pandit via Virtualization
2023-09-22 10:10   ` Michael S. Tsirkin
2023-09-22 15:53   ` Michael S. Tsirkin
2023-10-02 11:23     ` Parav Pandit via Virtualization

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=20230925133637-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=jgg@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kvm@vger.kernel.org \
    --cc=leonro@nvidia.com \
    --cc=maorg@nvidia.com \
    --cc=virtualization@lists.linux-foundation.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).