Re: [dpdk-dev] [RFC 00/14] mlx5: support SubFunction
From: Xia, Chenbo <hidden>
Date: 2021-06-15 05:33:12
Hi Parav,
-----Original Message----- From: Parav Pandit <redacted> Sent: Tuesday, June 15, 2021 12:05 PM To: Xia, Chenbo <redacted>; NBU-Contact-Thomas Monjalon [off-list ref]; Yigit, Ferruh [off-list ref] Cc: Xueming(Steven) Li <redacted>; Slava Ovsiienko [off-list ref]; dev@dpdk.org; Jason Gunthorpe [off-list ref] Subject: RE: [dpdk-dev] [RFC 00/14] mlx5: support SubFunction Hi Chenbo,quoted
From: Xia, Chenbo <redacted> Sent: Tuesday, June 15, 2021 7:41 AM Hi Thomas,quoted
From: Thomas Monjalon <redacted> Sent: Friday, June 11, 2021 3:54 PM[..]quoted
Yes. In our term it's called Assignable Device Interface (ADI) introduced in Intel Scalable IOV (https://01.org/blogs/2019/assignable-interfaces-intel- scalable-i/o-virtualization-linux) And vfio-mdev is chosen to be the software framework for it. I start torealizequoted
there is difference between SF and ADI: SF considers multi-function devices which may include net/regex/vdpa/...Yes. net, rdma, vdpa, regex ++. And eventually vfio_device to map to VM too. Non mdev framework is chosen so that all the use cases of kernel only, or user only or mix modes can be supported.
OK. Got it.
quoted
But ADI only focuses on the virtualization of the devices and splitting devices to logic parts andprovidingquoted
huge number of interfaces to host APP. I think SF also considers this but is mainly used for multi-function devices (like DPU in your term? Correct me if I'm wrong).SF also supports DPU mode too but it is in addition to above use cases. SF will expose mdev (or a vfio_device) to map to a VM.
So your SW actually supports vfio-mdev? I suppose the device-specific mdev Kernel module is out-of-tree? Just FYI: We are introducing a new mdev bus for DPDK: http://patchwork.dpdk.org/project/dpdk/cover/20210601030644.3318-1-chenbo.xia@intel.com/ Thanks, Chenbo
quoted
And I also noticed that the mdev-based interface can only be used in userspace but aux-based interface can also be used by other kernel sub- system (like for net, wrap it as netdev).Correct.