netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Alex Williamson <alex.williamson@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Parav Pandit <parav@mellanox.com>,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
	davem@davemloft.net, gregkh@linuxfoundation.org,
	Dave Ertman <david.m.ertman@intel.com>,
	netdev@vger.kernel.org, linux-rdma@vger.kernel.org,
	nhorman@redhat.com, sassmann@redhat.com,
	Kiran Patil <kiran.patil@intel.com>,
	Tiwei Bie <tiwei.bie@intel.com>
Subject: Re: [net-next v2 1/1] virtual-bus: Implementation of Virtual Bus
Date: Fri, 22 Nov 2019 16:45:38 +0800	[thread overview]
Message-ID: <721e49c2-a2e1-853f-298b-9601c32fcf9e@redhat.com> (raw)
In-Reply-To: <20191121141732.GB7448@ziepe.ca>


On 2019/11/21 下午10:17, Jason Gunthorpe wrote:
> On Thu, Nov 21, 2019 at 03:21:29PM +0800, Jason Wang wrote:
>>> The role of vfio has traditionally been around secure device
>>> assignment of a HW resource to a VM. I'm not totally clear on what the
>>> role if mdev is seen to be, but all the mdev drivers in the tree seem
>>> to make 'and pass it to KVM' a big part of their description.
>>>
>>> So, looking at the virtio patches, I see some intended use is to map
>>> some BAR pages into the VM.
>> Nope, at least not for the current stage. It still depends on the
>> virtio-net-pci emulatio in qemu to work. In the future, we will allow such
>> mapping only for dorbell.
> There has been a lot of emails today, but I think this is the main
> point I want to respond to.
>
> Using vfio when you don't even assign any part of the device BAR to
> the VM is, frankly, a gigantic misuse, IMHO.


That's not a compelling point. If you go through the discussion on 
vhost-mdev from last year, the direct mapping of doorbell is accounted 
since that time[1]. It works since its stateless. Having an arbitrary 
BAR to be mapped directly to VM may cause lots of troubles for migration 
since it requires a vendor specific way to get the state of the device. 
I don't think having a vendor specific migration driver is acceptable in 
qemu. What's more, direct mapping through MMIO is even optional (see 
CONFIG_VFIO_PCI_MMAP) and vfio support buses without any MMIO region.


>
> Just needing userspace DMA is not, in any way, a justification to use
> vfio.
>
> We have extensive library interfaces in the kernel to do userspace DMA
> and subsystems like GPU and RDMA are full of example uses of this kind
> of stuff.


I'm not sure which library did you mean here. Is any of those library 
used by qemu? If not, what's the reason?

For virtio, we need a device agnostic API which supports migration. Is 
that something the library you mention here can provide?


>   Everything from on-device IOMMU to system IOMMU to PASID. If
> you find things missing then we need to improve those library
> interfaces, not further abuse VFIO.
>
> Further, I do not think it is wise to design the userspace ABI around
> a simplistict implementation that can't do BAR assignment,


Again, the vhost-mdev follow the VFIO ABI, no new ABI is invented, and 
mmap() was kept their for mapping device regions.


> and can't
> support multiple virtio rings on single PCI function.


How do you know multiple virtio rings can't be supported? It should be 
address at the level of parent devices not virtio-mdev framework, no?


> This stuff is
> clearly too premature.


It depends on how mature you want. All the above two points looks 
invalid to me.


>
> My advice is to proceed as a proper subsystem with your own chardev,
> own bus type, etc and maybe live in staging for a bit until 2-3
> drivers are implementing the ABI (or at the very least agreeing with),
> as is the typical process for Linux.


I'm open to comments for sure, but looking at all the requirement for 
vDPA, most of the requirement could be settled through existed modules, 
that's not only a simplification for developing but also for management 
layer or userspace drivers.


>
> Building a new kernel ABI is hard (this is why I advised to use a
> userspace driver).


Well, it looks to me my clarification is ignored several times. There's 
no new ABI invented in the series, no?


> It has to go through the community process at the
> usual pace.


What do you mean by "usual pace"? It has been more than 1.5 year since 
the first version of vhost-mdev [1] that was posted on the list.

[1] https://lwn.net/Articles/750770/

Thanks

>
> Jason
>


  reply	other threads:[~2019-11-22  8:46 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-15 22:33 [net-next v2 1/1] virtual-bus: Implementation of Virtual Bus Jeff Kirsher
2019-11-15 23:25 ` Parav Pandit
2019-11-19  3:58   ` Ertman, David M
2019-11-19  4:31     ` Parav Pandit
2019-11-19  4:39       ` Parav Pandit
2019-11-19 17:46         ` Ertman, David M
2019-11-19 18:39           ` Jason Gunthorpe
2019-11-19 17:44       ` Ertman, David M
2019-11-19  4:08   ` Jason Wang
2019-11-19  4:36     ` Parav Pandit
2019-11-19  6:51       ` Jason Wang
2019-11-19  7:13         ` Parav Pandit
2019-11-19  7:37           ` Jason Wang
2019-11-19 15:14             ` Parav Pandit
2019-11-20  3:15               ` Jason Wang
2019-11-20  3:38                 ` Parav Pandit
2019-11-20  4:07                   ` Jason Wang
2019-11-20 13:41                     ` Jason Gunthorpe
2019-11-21  4:06                       ` Jason Wang
2019-11-20  8:52                   ` Michael S. Tsirkin
2019-11-20 12:03                     ` Jiri Pirko
2019-11-19 16:46             ` Jason Gunthorpe
2019-11-19 18:58               ` Michael S. Tsirkin
2019-11-19 19:03                 ` Jason Gunthorpe
2019-11-19 21:34                   ` Michael S. Tsirkin
2019-11-19 19:15                 ` Jason Gunthorpe
2019-11-19 21:33                   ` Michael S. Tsirkin
2019-11-19 23:10                     ` Jason Gunthorpe
2019-11-20  0:16                       ` Michael S. Tsirkin
2019-11-20  1:46                         ` Jason Gunthorpe
2019-11-20  3:59                           ` Jason Wang
2019-11-20  5:34                             ` Jason Wang
2019-11-20 13:38                             ` Jason Gunthorpe
2019-11-20 14:15                               ` Michael S. Tsirkin
2019-11-20 17:28                               ` Alex Williamson
2019-11-20 18:11                                 ` Jason Gunthorpe
2019-11-20 22:07                                   ` Alex Williamson
2019-11-20 22:39                                     ` Parav Pandit
2019-11-21  8:17                                       ` Jason Wang
2019-11-21  3:03                                     ` Jason Gunthorpe
2019-11-21  4:24                                       ` Michael S. Tsirkin
2019-11-21 13:44                                         ` Jason Gunthorpe
2019-11-23 16:50                                           ` Michael S. Tsirkin
2019-11-21  7:21                                       ` Jason Wang
2019-11-21 14:17                                         ` Jason Gunthorpe
2019-11-22  8:45                                           ` Jason Wang [this message]
2019-11-22 18:02                                             ` Jason Gunthorpe
2019-11-23  4:39                                               ` Tiwei Bie
2019-11-23 23:09                                                 ` Jason Gunthorpe
2019-11-24 11:00                                                   ` Michael S. Tsirkin
2019-11-24 14:56                                                     ` Tiwei Bie
2019-11-25  0:07                                                     ` Jason Gunthorpe
2019-11-24 14:51                                                   ` Tiwei Bie
2019-11-24 15:07                                                     ` Michael S. Tsirkin
2019-11-25  0:09                                                     ` Jason Gunthorpe
2019-11-25 12:59                                                       ` Jason Wang
2019-11-23 16:48                                           ` Michael S. Tsirkin
2019-11-21  5:22                                     ` Jason Wang
2019-11-21  6:59                                   ` Jason Wang
2019-11-21  3:52                               ` Jason Wang
2019-11-20  7:38                           ` Michael S. Tsirkin
2019-11-20 13:03                             ` Jason Gunthorpe
2019-11-20 13:43                               ` Michael S. Tsirkin
2019-11-20 14:30                                 ` Jason Gunthorpe
2019-11-20 14:57                                   ` Michael S. Tsirkin
2019-11-20 16:45                                     ` Jason Gunthorpe
2019-11-20 22:05                                       ` Michael S. Tsirkin
2019-11-21  1:38                                         ` Jason Gunthorpe
2019-11-21  4:53                                       ` Jason Wang
2019-11-20  3:29                   ` Jason Wang
2019-11-20  3:24               ` Jason Wang
2019-11-20 13:33                 ` Jason Gunthorpe
2019-11-21  3:57                   ` Jason Wang
2019-11-21 15:10     ` Martin Habets
2019-11-22  9:13       ` Jason Wang
2019-11-22 16:19         ` Parav Pandit
2019-11-26 12:26           ` Martin Habets
2019-11-27 10:58             ` Jason Wang
2019-11-27 11:03               ` Jason Wang
2019-11-15 23:42 ` Parav Pandit
2019-11-18  7:48 ` Greg KH
2019-11-18 22:57   ` Ertman, David M
2019-11-19  8:04   ` Jason Wang
2019-11-19 17:50     ` Ertman, David M
2019-11-18  7:49 ` Greg KH
2019-11-18 22:55   ` Ertman, David M

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=721e49c2-a2e1-853f-298b-9601c32fcf9e@redhat.com \
    --to=jasowang@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=davem@davemloft.net \
    --cc=david.m.ertman@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=jgg@ziepe.ca \
    --cc=kiran.patil@intel.com \
    --cc=linux-rdma@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@redhat.com \
    --cc=parav@mellanox.com \
    --cc=sassmann@redhat.com \
    --cc=tiwei.bie@intel.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;
as well as URLs for NNTP newsgroup(s).