dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Jason Gunthorpe <jgg@mellanox.com>
Cc: "rdunlap@infradead.org" <rdunlap@infradead.org>,
	"jakub.kicinski@netronome.com" <jakub.kicinski@netronome.com>,
	"christophe.de.dinechin@gmail.com"
	<christophe.de.dinechin@gmail.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"airlied@linux.ie" <airlied@linux.ie>,
	"heiko.carstens@de.ibm.com" <heiko.carstens@de.ibm.com>,
	"kevin.tian@intel.com" <kevin.tian@intel.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"oberpar@linux.ibm.com" <oberpar@linux.ibm.com>,
	"kwankhede@nvidia.com" <kwankhede@nvidia.com>,
	"rob.miller@broadcom.com" <rob.miller@broadcom.com>,
	"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
	"sebott@linux.ibm.com" <sebott@linux.ibm.com>,
	"lulu@redhat.com" <lulu@redhat.com>,
	"eperezma@redhat.com" <eperezma@redhat.com>,
	"pasic@linux.ibm.com" <pasic@linux.ibm.com>,
	borntraeger@de.ibm
Subject: Re: [PATCH V13 4/6] mdev: introduce mediated virtio bus
Date: Tue, 19 Nov 2019 22:02:08 +0800	[thread overview]
Message-ID: <d38abc98-b828-64cd-50cd-cb0d239e1696@redhat.com> (raw)
In-Reply-To: <20191119123803.GA26739@mellanox.com>


On 2019/11/19 下午8:38, Jason Gunthorpe wrote:
> On Tue, Nov 19, 2019 at 10:41:31AM +0800, Jason Wang wrote:
>> On 2019/11/19 上午4:28, Jason Gunthorpe wrote:
>>> On Mon, Nov 18, 2019 at 03:27:13PM -0500, Michael S. Tsirkin wrote:
>>>> On Mon, Nov 18, 2019 at 01:41:00PM +0000, Jason Gunthorpe wrote:
>>>>> On Mon, Nov 18, 2019 at 06:59:21PM +0800, Jason Wang wrote:
>>>>>> +struct bus_type mdev_virtio_bus_type;
>>>>>> +
>>>>>> +struct mdev_virtio_device {
>>>>>> +	struct mdev_device mdev;
>>>>>> +	const struct mdev_virtio_ops *ops;
>>>>>> +	u16 class_id;
>>>>>> +};
>>>>> This seems to share nothing with mdev (ie mdev-vfio), why is it on the
>>>>> same bus?
>>>> I must be missing something - which bus do they share?
>>> mdev_bus_type ?
>>>
>>> Jason
>>
>> Note: virtio has its own bus: mdev_virtio_bus_type. So they are not the same
>> bus.
> That is even worse, why involve struct mdev_device at all then?
>
> Jason


I don't quite get the question here.

My understanding for mdev is that it was a mediator between the driver 
and physical device when it's hard to let them talk directly due to the 
complexity of refactoring and maintenance. This is exact the case of 
hardware that can offload virtio datapath but not control path. We want 
to present a unified interface (standard virtio) instead of a vendor 
specific interface, so a mediator level in the middle is a must. For 
virtio driver, mediator present a full virtio compatible device. For 
hardware, mediator will mediate the difference between the behavior 
defined by virtio spec and real hardware.

And the reason why not inventing something new instead of existed mdev 
is because mdev fits into the requirement of virtio-mdev very well:
1) mature framework which has been used by vGPU and other type for years
2) life cycle interface, have a unified interface for management instead 
of a vendor specific one so less pain for management
3) device type management. In the case of virtio, user can choose to 
create a vhost type of device or virtio type of device, or technically 
it can choose which version or features of virtio device it want to create.
4) IOMMU support, mdev allows DMA isolation done at either parent level 
or platform/bus level
5) vendor specific attributes

So in Parav's thread [1], if I understand correctly.  The major concern 
is the  API multiplexer at a single mdev bus level. So comes to this 
series which decouple VFIO and make mdev more generic to be suitable for 
implementing a set of independent buses with similar functions.

Thanks

[1] https://www.spinics.net/lists/linux-rdma/msg85856.html

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Jason Wang <jasowang@redhat.com>
To: Jason Gunthorpe <jgg@mellanox.com>
Cc: "rdunlap@infradead.org" <rdunlap@infradead.org>,
	"jakub.kicinski@netronome.com" <jakub.kicinski@netronome.com>,
	"christophe.de.dinechin@gmail.com"
	<christophe.de.dinechin@gmail.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"airlied@linux.ie" <airlied@linux.ie>,
	"heiko.carstens@de.ibm.com" <heiko.carstens@de.ibm.com>,
	"kevin.tian@intel.com" <kevin.tian@intel.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"oberpar@linux.ibm.com" <oberpar@linux.ibm.com>,
	"kwankhede@nvidia.com" <kwankhede@nvidia.com>,
	"rob.miller@broadcom.com" <rob.miller@broadcom.com>,
	"linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>,
	"sebott@linux.ibm.com" <sebott@linux.ibm.com>,
	"lulu@redhat.com" <lulu@redhat.com>,
	"eperezma@redhat.com" <eperezma@redhat.com>,
	"pasic@linux.ibm.com" <pasic@linux.ibm.com>,
	"borntraeger@de.ibm.com" <borntraeger@de.ibm.com>,
	"haotian.wang@sifive.com" <haotian.wang@sifive.com>,
	"jeffrey.t.kirsher@intel.com" <jeffrey.t.kirsher@intel.com>,
	"cunming.liang@intel.com" <cunming.liang@intel.com>,
	"zhi.a.wang@intel.com" <zhi.a.wang@intel.com>,
	"farman@linux.ibm.com" <farman@linux.ibm.com>,
	Parav Pandit <parav@mellanox.com>,
	"gor@linux.ibm.com" <gor@linux.ibm.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"xiao.w.wang@intel.com" <xiao.w.wang@intel.com>,
	"freude@linux.ibm.com" <freude@linux.ibm.com>,
	"stefanha@redhat.com" <stefanha@redhat.com>,
	"zhihong.wang@intel.com" <zhihong.wang@intel.com>,
	"rodrigo.vivi@intel.com" <rodrigo.vivi@intel.com>,
	"intel-gvt-dev@lists.freedesktop.org"
	<intel-gvt-dev@lists.freedesktop.org>,
	"hch@infradead.org" <hch@infradead.org>,
	"akrowiak@linux.ibm.com" <akrowiak@linux.ibm.com>,
	"aadam@redhat.com" <aadam@redhat.com>,
	Jiri Pirko <jiri@mellanox.com>,
	"tiwei.bie@intel.com" <tiwei.bie@intel.com>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"cohuck@redhat.com" <cohuck@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"lingshan.zhu@intel.com" <lingshan.zhu@intel.com>
Subject: Re: [PATCH V13 4/6] mdev: introduce mediated virtio bus
Date: Tue, 19 Nov 2019 22:02:08 +0800	[thread overview]
Message-ID: <d38abc98-b828-64cd-50cd-cb0d239e1696@redhat.com> (raw)
Message-ID: <20191119140208.Q2nWjYeQxdI9gr-Tllm8PCXwh9gQ9z2yRW-5vrJpzys@z> (raw)
In-Reply-To: <20191119123803.GA26739@mellanox.com>


On 2019/11/19 下午8:38, Jason Gunthorpe wrote:
> On Tue, Nov 19, 2019 at 10:41:31AM +0800, Jason Wang wrote:
>> On 2019/11/19 上午4:28, Jason Gunthorpe wrote:
>>> On Mon, Nov 18, 2019 at 03:27:13PM -0500, Michael S. Tsirkin wrote:
>>>> On Mon, Nov 18, 2019 at 01:41:00PM +0000, Jason Gunthorpe wrote:
>>>>> On Mon, Nov 18, 2019 at 06:59:21PM +0800, Jason Wang wrote:
>>>>>> +struct bus_type mdev_virtio_bus_type;
>>>>>> +
>>>>>> +struct mdev_virtio_device {
>>>>>> +	struct mdev_device mdev;
>>>>>> +	const struct mdev_virtio_ops *ops;
>>>>>> +	u16 class_id;
>>>>>> +};
>>>>> This seems to share nothing with mdev (ie mdev-vfio), why is it on the
>>>>> same bus?
>>>> I must be missing something - which bus do they share?
>>> mdev_bus_type ?
>>>
>>> Jason
>>
>> Note: virtio has its own bus: mdev_virtio_bus_type. So they are not the same
>> bus.
> That is even worse, why involve struct mdev_device at all then?
>
> Jason


I don't quite get the question here.

My understanding for mdev is that it was a mediator between the driver 
and physical device when it's hard to let them talk directly due to the 
complexity of refactoring and maintenance. This is exact the case of 
hardware that can offload virtio datapath but not control path. We want 
to present a unified interface (standard virtio) instead of a vendor 
specific interface, so a mediator level in the middle is a must. For 
virtio driver, mediator present a full virtio compatible device. For 
hardware, mediator will mediate the difference between the behavior 
defined by virtio spec and real hardware.

And the reason why not inventing something new instead of existed mdev 
is because mdev fits into the requirement of virtio-mdev very well:
1) mature framework which has been used by vGPU and other type for years
2) life cycle interface, have a unified interface for management instead 
of a vendor specific one so less pain for management
3) device type management. In the case of virtio, user can choose to 
create a vhost type of device or virtio type of device, or technically 
it can choose which version or features of virtio device it want to create.
4) IOMMU support, mdev allows DMA isolation done at either parent level 
or platform/bus level
5) vendor specific attributes

So in Parav's thread [1], if I understand correctly.  The major concern 
is the  API multiplexer at a single mdev bus level. So comes to this 
series which decouple VFIO and make mdev more generic to be suitable for 
implementing a set of independent buses with similar functions.

Thanks

[1] https://www.spinics.net/lists/linux-rdma/msg85856.html

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-11-19 14:02 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-18 10:59 [PATCH V13 0/6] mdev based hardware virtio offloading support Jason Wang
2019-11-18 10:59 ` [PATCH V13 1/6] mdev: make mdev bus agnostic Jason Wang
2019-11-19  3:08   ` Randy Dunlap
2019-11-19  3:08     ` Randy Dunlap
2019-11-18 10:59 ` [PATCH V13 2/6] mdev: split out VFIO bus specific parent ops Jason Wang
2019-11-18 10:59   ` Jason Wang
2019-11-18 10:59 ` [PATCH V13 3/6] mdev: move to drivers/ Jason Wang
2019-11-18 10:59   ` Jason Wang
2019-11-19  3:11   ` Randy Dunlap
2019-11-19  3:11     ` Randy Dunlap
2019-11-18 10:59 ` [PATCH V13 4/6] mdev: introduce mediated virtio bus Jason Wang
2019-11-18 13:41   ` Jason Gunthorpe
2019-11-18 13:41     ` Jason Gunthorpe
2019-11-18 20:27     ` Michael S. Tsirkin
2019-11-18 20:27       ` Michael S. Tsirkin
2019-11-18 20:28       ` Jason Gunthorpe
2019-11-18 20:28         ` Jason Gunthorpe
2019-11-19  2:41         ` Jason Wang
2019-11-19  2:41           ` Jason Wang
2019-11-19 12:38           ` Jason Gunthorpe
2019-11-19 14:02             ` Jason Wang [this message]
2019-11-19 14:02               ` Jason Wang
2019-11-19 14:14               ` Jason Gunthorpe
2019-11-20  2:14                 ` Jason Wang
2019-11-20  2:14                   ` Jason Wang
2019-11-20 13:49                   ` Jason Gunthorpe
2019-11-20 13:49                     ` Jason Gunthorpe
2019-11-21  3:05                     ` Jason Wang
2019-11-21  3:05                       ` Jason Wang
2019-11-26 12:07                   ` Rob Miller
2019-11-26 12:07                     ` Rob Miller
2019-11-19  2:40     ` Jason Wang
2019-11-19  2:40       ` Jason Wang
2019-11-19  3:13   ` Randy Dunlap
2019-11-19  3:13     ` Randy Dunlap
2019-11-18 10:59 ` [PATCH V13 5/6] virtio: introduce a mdev based transport Jason Wang
2019-11-18 10:59   ` Jason Wang
2019-11-18 10:59 ` [PATCH V13 6/6] docs: sample driver to demonstrate how to implement virtio-mdev framework Jason Wang
2019-11-18 10:59   ` Jason Wang
2019-11-18 15:17   ` Greg KH
2019-11-18 15:17     ` Greg KH
2019-11-19  3:03     ` Jason Wang
2019-11-19  3:03       ` Jason Wang
2019-11-19 12:40       ` Jason Gunthorpe
2019-11-19 14:07         ` Jason Wang
2019-11-19 14:07           ` Jason Wang
2019-11-19 16:39           ` Jason Gunthorpe
2019-11-18 15:45   ` Cornelia Huck
2019-11-18 15:45     ` Cornelia Huck
2019-11-19  3:04     ` Jason Wang
2019-11-19  3:04       ` Jason Wang

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=d38abc98-b828-64cd-50cd-cb0d239e1696@redhat.com \
    --to=jasowang@redhat.com \
    --cc=airlied@linux.ie \
    --cc=borntraeger@de.ibm \
    --cc=christophe.de.dinechin@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eperezma@redhat.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jakub.kicinski@netronome.com \
    --cc=jgg@mellanox.com \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-s390@vger.kernel.org \
    --cc=lulu@redhat.com \
    --cc=mst@redhat.com \
    --cc=oberpar@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=rdunlap@infradead.org \
    --cc=rob.miller@broadcom.com \
    --cc=sebott@linux.ibm.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