Re: [PATCH 0/5] vDPA support

Jason Wang
2020-01-21T09:39:41Z

On 2020/1/21 下午4:44, Tian, Kevin wrote:
>> From: Jason Wang
>> Sent: Thursday, January 16, 2020 8:42 PM
>>
>> Hi all:
>>
>> Based on the comments and discussion for mdev based hardware virtio
>> offloading support[1]. A different approach to support vDPA device is
>> proposed in this series.
> Can you point to the actual link which triggered the direction change?
> A quick glimpse in that thread doesn't reveal such information...

Right, please see this link, the actual discussion happens on the thread
of virtual-bus for some reasons...

https://patchwork.ozlabs.org/patch/1195895/

Thanks

>
>> Instead of leveraging VFIO/mdev which may not work for some
>> vendors. This series tries to introduce a dedicated vDPA bus and
>> leverage vhost for userspace drivers. This help for the devices that
>> are not fit for VFIO and may reduce the conflict when try to propose a
>> bus template for virtual devices in [1].
>>
>> The vDPA support is split into following parts:
>>
>> 1) vDPA core (bus, device and driver abstraction)
>> 2) virtio vDPA transport for kernel virtio driver to control vDPA
>> device
>> 3) vhost vDPA bus driver for userspace vhost driver to control vDPA
>> device
>> 4) vendor vDPA drivers
>> 5) management API
>>
>> Both 1) and 2) are included in this series. Tiwei will work on part
>> 3). For 4), Ling Shan will work and post IFCVF driver. For 5) we leave
>> it to vendor to implement, but it's better to come into an agreement
>> for management to create/configure/destroy vDPA device.
>>
>> The sample driver is kept but renamed to vdap_sim. An on-chip IOMMU
>> implementation is added to sample device to make it work for both
>> kernel virtio driver and userspace vhost driver. It implements a sysfs
>> based management API, but it can switch to any other (e.g devlink) if
>> necessary.
>>
>> Please refer each patch for more information.
>>
>> Comments are welcomed.
>>
>> [1] https://lkml.org/lkml/2019/11/18/261
>>
>> Jason Wang (5):
>> vhost: factor out IOTLB
>> vringh: IOTLB support
>> vDPA: introduce vDPA bus
>> virtio: introduce a vDPA based transport
>> vdpasim: vDPA device simulator
>>
>> MAINTAINERS | 2 +
>> drivers/vhost/Kconfig | 7 +
>> drivers/vhost/Kconfig.vringh | 1 +
>> drivers/vhost/Makefile | 2 +
>> drivers/vhost/net.c | 2 +-
>> drivers/vhost/vhost.c | 221 +++------
>> drivers/vhost/vhost.h | 36 +-
>> drivers/vhost/vhost_iotlb.c | 171 +++++++
>> drivers/vhost/vringh.c | 434 +++++++++++++++++-
>> drivers/virtio/Kconfig | 15 +
>> drivers/virtio/Makefile | 2 +
>> drivers/virtio/vdpa/Kconfig | 26 ++
>> drivers/virtio/vdpa/Makefile | 3 +
>> drivers/virtio/vdpa/vdpa.c | 141 ++++++
>> drivers/virtio/vdpa/vdpa_sim.c | 796
>> +++++++++++++++++++++++++++++++++
>> drivers/virtio/virtio_vdpa.c | 400 +++++++++++++++++
>> include/linux/vdpa.h | 191 ++++++++
>> include/linux/vhost_iotlb.h | 45 ++
>> include/linux/vringh.h | 36 ++
>> 19 files changed, 2327 insertions(+), 204 deletions(-)
>> create mode 100644 drivers/vhost/vhost_iotlb.c
>> create mode 100644 drivers/virtio/vdpa/Kconfig
>> create mode 100644 drivers/virtio/vdpa/Makefile
>> create mode 100644 drivers/virtio/vdpa/vdpa.c
>> create mode 100644 drivers/virtio/vdpa/vdpa_sim.c
>> create mode 100644 drivers/virtio/virtio_vdpa.c
>> create mode 100644 include/linux/vdpa.h
>> create mode 100644 include/linux/vhost_iotlb.h
>>
>> --
>> 2.19.1