This series enabled Intel FGPA SmartNIC C5000X-PL virtio-net for vDPA
changes from V1:
remove version number string(Leon)
add new device ids and remove original device ids
in separate patches(Jason)
Zhu Lingshan (4):
vDPA/ifcvf: get_vendor_id returns a device specific vendor id
vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids
vDPA/ifcvf: remove the version number string
drivers/vdpa/ifcvf/ifcvf_base.h | 13 +++++++++----
drivers/vdpa/ifcvf/ifcvf_main.c | 20 +++++++++++++-------
2 files changed, 22 insertions(+), 11 deletions(-)
--
2.27.0
In this commit, ifcvf_get_vendor_id() will return
a device specific vendor id of the probed pci device
than a hard code.
Signed-off-by: Zhu Lingshan <redacted>
---
drivers/vdpa/ifcvf/ifcvf_main.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
This commit removes the version number string, using kernel
version is enough.
Signed-off-by: Zhu Lingshan <redacted>
---
drivers/vdpa/ifcvf/ifcvf_main.c | 2 --
1 file changed, 2 deletions(-)
IFCVF driver probes multiple types of devices now,
to distinguish the original device driven by IFCVF
from others, it is renamed as "N3000".
Signed-off-by: Zhu Lingshan <redacted>
---
drivers/vdpa/ifcvf/ifcvf_base.h | 8 ++++----
drivers/vdpa/ifcvf/ifcvf_main.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
From: Leon Romanovsky <leon@kernel.org> Date: 2021-03-08 16:04:42
On Mon, Mar 08, 2021 at 04:35:25PM +0800, Zhu Lingshan wrote:
This commit removes the version number string, using kernel
version is enough.
Signed-off-by: Zhu Lingshan <redacted>
---
drivers/vdpa/ifcvf/ifcvf_main.c | 2 --
1 file changed, 2 deletions(-)
Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
From: Jason Wang <hidden> Date: 2021-03-09 02:19:14
On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
In this commit, ifcvf_get_vendor_id() will return
a device specific vendor id of the probed pci device
than a hard code.
Signed-off-by: Zhu Lingshan <redacted>
I just notice that the device is a transtitional one. Any reason for
doing this?
Note that IFCVF is a moden device anyhow (0x1041). Supporting legacy
drive may bring many issues (e.g the definition is non-nomartive). One
example is the support of VIRTIO_F_IOMMU_PLATFORM, legacy driver may
assume the device can bypass IOMMU.
Thanks
From: Jason Wang <hidden> Date: 2021-03-09 02:25:39
On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
IFCVF driver probes multiple types of devices now,
to distinguish the original device driven by IFCVF
from others, it is renamed as "N3000".
Signed-off-by: Zhu Lingshan <redacted>
Acked-by: Jason Wang <redacted>
You probably need to rename the driver.
Thanks
I just notice that the device is a transtitional one. Any reason for
doing this?
Note that IFCVF is a moden device anyhow (0x1041). Supporting legacy
drive may bring many issues (e.g the definition is non-nomartive). One
example is the support of VIRTIO_F_IOMMU_PLATFORM, legacy driver may
assume the device can bypass IOMMU.
Thanks
Hi Jason,
This device will support virtio1.0 by default, so has
VIRTIO_F_IOMMU_PLATFORM by default. Transitional device gives the
software a chance to fall back to virtio 0.95.
ifcvf drives this device in virtio 1.0 mode, set features
VIRTIO_F_IOMMU_PLATFORM successfully.
Thanks,
Zhu Lingshan
I just notice that the device is a transtitional one. Any reason for
doing this?
Note that IFCVF is a moden device anyhow (0x1041). Supporting legacy
drive may bring many issues (e.g the definition is non-nomartive).
One example is the support of VIRTIO_F_IOMMU_PLATFORM, legacy driver
may assume the device can bypass IOMMU.
Thanks
Hi Jason,
This device will support virtio1.0 by default, so has
VIRTIO_F_IOMMU_PLATFORM by default.
If you device want to force VIRTIO_F_IOMMU_PLATFORM you probably need to
do what has been done by mlx5 (verify_min_features).
According to the spec, if VIRTIO_F_IOMMU_PLATFORM is not mandatory, when
it's not negotiated, device needs to disable or bypass IOMMU:
"
If this feature bit is set to 0, then the device has same access to
memory addresses supplied to it as the driver has. In particular, the
device will always use physical addresses matching addresses used by the
driver (typically meaning physical addresses used by the CPU) and not
translated further, and can access any address supplied to it by the driver.
"
Transitional device gives the software a chance to fall back to virtio
0.95.
This only applies if you want to passthrough the card to guest directly
without the help of vDPA.
If we go with vDPA, it doesn't hlep. For virtio-vdpa, we know it will
negotiated IOMMU_PLATFORM. For vhost-vdpa, Qemu can provide a legacy or
transitional device on top of a modern vDPA device.
Thanks
ifcvf drives this device in virtio 1.0 mode, set features
VIRTIO_F_IOMMU_PLATFORM successfully.
Thanks,
Zhu Lingshan
I just notice that the device is a transtitional one. Any reason for
doing this?
Note that IFCVF is a moden device anyhow (0x1041). Supporting legacy
drive may bring many issues (e.g the definition is non-nomartive).
One example is the support of VIRTIO_F_IOMMU_PLATFORM, legacy driver
may assume the device can bypass IOMMU.
Thanks
Hi Jason,
This device will support virtio1.0 by default, so has
VIRTIO_F_IOMMU_PLATFORM by default.
If you device want to force VIRTIO_F_IOMMU_PLATFORM you probably need
to do what has been done by mlx5 (verify_min_features).
According to the spec, if VIRTIO_F_IOMMU_PLATFORM is not mandatory,
when it's not negotiated, device needs to disable or bypass IOMMU:
"
If this feature bit is set to 0, then the device has same access to
memory addresses supplied to it as the driver has. In particular, the
device will always use physical addresses matching addresses used by
the driver (typically meaning physical addresses used by the CPU) and
not translated further, and can access any address supplied to it by
the driver.
"
sure, I can implement code to check the feature bits.
quoted
Transitional device gives the software a chance to fall back to
virtio 0.95.
This only applies if you want to passthrough the card to guest
directly without the help of vDPA.
If we go with vDPA, it doesn't hlep. For virtio-vdpa, we know it will
negotiated IOMMU_PLATFORM. For vhost-vdpa, Qemu can provide a legacy
or transitional device on top of a modern vDPA device.
Thanks
For some cases, users may run quite out of date OS does not have vDPA
nor virtio 1.0 support, transitional characters give them a chance to
use the devices.
Thanks
Zhu Lingshan
quoted
ifcvf drives this device in virtio 1.0 mode, set features
VIRTIO_F_IOMMU_PLATFORM successfully.
Thanks,
Zhu Lingshan