kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net
@ 2021-03-08  8:35 Zhu Lingshan
  2021-03-08  8:35 ` [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id Zhu Lingshan
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Zhu Lingshan @ 2021-03-08  8:35 UTC (permalink / raw)
  To: jasowang, mst, lulu
  Cc: virtualization, netdev, kvm, linux-kernel, Zhu Lingshan

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


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id
  2021-03-08  8:35 [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net Zhu Lingshan
@ 2021-03-08  8:35 ` Zhu Lingshan
  2021-03-09  2:18   ` Jason Wang
  2021-03-08  8:35 ` [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA Zhu Lingshan
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Zhu Lingshan @ 2021-03-08  8:35 UTC (permalink / raw)
  To: jasowang, mst, lulu
  Cc: virtualization, netdev, kvm, linux-kernel, Zhu Lingshan

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 <lingshan.zhu@intel.com>
---
 drivers/vdpa/ifcvf/ifcvf_main.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index fa1af301cf55..e501ee07de17 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -324,7 +324,10 @@ static u32 ifcvf_vdpa_get_device_id(struct vdpa_device *vdpa_dev)
 
 static u32 ifcvf_vdpa_get_vendor_id(struct vdpa_device *vdpa_dev)
 {
-	return IFCVF_SUBSYS_VENDOR_ID;
+	struct ifcvf_adapter *adapter = vdpa_to_adapter(vdpa_dev);
+	struct pci_dev *pdev = adapter->pdev;
+
+	return pdev->subsystem_vendor;
 }
 
 static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
  2021-03-08  8:35 [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net Zhu Lingshan
  2021-03-08  8:35 ` [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id Zhu Lingshan
@ 2021-03-08  8:35 ` Zhu Lingshan
  2021-03-09  2:23   ` Jason Wang
  2021-03-08  8:35 ` [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids Zhu Lingshan
  2021-03-08  8:35 ` [PATCH V2 4/4] vDPA/ifcvf: remove the version number string Zhu Lingshan
  3 siblings, 1 reply; 13+ messages in thread
From: Zhu Lingshan @ 2021-03-08  8:35 UTC (permalink / raw)
  To: jasowang, mst, lulu
  Cc: virtualization, netdev, kvm, linux-kernel, Zhu Lingshan

This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
for vDPA

Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
---
 drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++
 drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h
index 64696d63fe07..75d9a8052039 100644
--- a/drivers/vdpa/ifcvf/ifcvf_base.h
+++ b/drivers/vdpa/ifcvf/ifcvf_base.h
@@ -23,6 +23,11 @@
 #define IFCVF_SUBSYS_VENDOR_ID	0x8086
 #define IFCVF_SUBSYS_DEVICE_ID	0x001A
 
+#define C5000X_PL_VENDOR_ID		0x1AF4
+#define C5000X_PL_DEVICE_ID		0x1000
+#define C5000X_PL_SUBSYS_VENDOR_ID	0x8086
+#define C5000X_PL_SUBSYS_DEVICE_ID	0x0001
+
 #define IFCVF_SUPPORTED_FEATURES \
 		((1ULL << VIRTIO_NET_F_MAC)			| \
 		 (1ULL << VIRTIO_F_ANY_LAYOUT)			| \
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index e501ee07de17..26a2dab7ca66 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {
 		IFCVF_DEVICE_ID,
 		IFCVF_SUBSYS_VENDOR_ID,
 		IFCVF_SUBSYS_DEVICE_ID) },
+	{ PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
+			 C5000X_PL_DEVICE_ID,
+			 C5000X_PL_SUBSYS_VENDOR_ID,
+			 C5000X_PL_SUBSYS_DEVICE_ID) },
+
 	{ 0 },
 };
 MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids
  2021-03-08  8:35 [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net Zhu Lingshan
  2021-03-08  8:35 ` [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id Zhu Lingshan
  2021-03-08  8:35 ` [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA Zhu Lingshan
@ 2021-03-08  8:35 ` Zhu Lingshan
  2021-03-09  2:24   ` Jason Wang
  2021-03-08  8:35 ` [PATCH V2 4/4] vDPA/ifcvf: remove the version number string Zhu Lingshan
  3 siblings, 1 reply; 13+ messages in thread
From: Zhu Lingshan @ 2021-03-08  8:35 UTC (permalink / raw)
  To: jasowang, mst, lulu
  Cc: virtualization, netdev, kvm, linux-kernel, Zhu Lingshan

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 <lingshan.zhu@intel.com>
---
 drivers/vdpa/ifcvf/ifcvf_base.h | 8 ++++----
 drivers/vdpa/ifcvf/ifcvf_main.c | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h
index 75d9a8052039..794d1505d857 100644
--- a/drivers/vdpa/ifcvf/ifcvf_base.h
+++ b/drivers/vdpa/ifcvf/ifcvf_base.h
@@ -18,10 +18,10 @@
 #include <uapi/linux/virtio_config.h>
 #include <uapi/linux/virtio_pci.h>
 
-#define IFCVF_VENDOR_ID		0x1AF4
-#define IFCVF_DEVICE_ID		0x1041
-#define IFCVF_SUBSYS_VENDOR_ID	0x8086
-#define IFCVF_SUBSYS_DEVICE_ID	0x001A
+#define N3000_VENDOR_ID		0x1AF4
+#define N3000_DEVICE_ID		0x1041
+#define N3000_SUBSYS_VENDOR_ID	0x8086
+#define N3000_SUBSYS_DEVICE_ID	0x001A
 
 #define C5000X_PL_VENDOR_ID		0x1AF4
 #define C5000X_PL_DEVICE_ID		0x1000
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index 26a2dab7ca66..fd5befc5cbcc 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -480,10 +480,10 @@ static void ifcvf_remove(struct pci_dev *pdev)
 }
 
 static struct pci_device_id ifcvf_pci_ids[] = {
-	{ PCI_DEVICE_SUB(IFCVF_VENDOR_ID,
-		IFCVF_DEVICE_ID,
-		IFCVF_SUBSYS_VENDOR_ID,
-		IFCVF_SUBSYS_DEVICE_ID) },
+	{ PCI_DEVICE_SUB(N3000_VENDOR_ID,
+			 N3000_DEVICE_ID,
+			 N3000_SUBSYS_VENDOR_ID,
+			 N3000_SUBSYS_DEVICE_ID) },
 	{ PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
 			 C5000X_PL_DEVICE_ID,
 			 C5000X_PL_SUBSYS_VENDOR_ID,
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH V2 4/4] vDPA/ifcvf: remove the version number string
  2021-03-08  8:35 [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net Zhu Lingshan
                   ` (2 preceding siblings ...)
  2021-03-08  8:35 ` [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids Zhu Lingshan
@ 2021-03-08  8:35 ` Zhu Lingshan
  2021-03-08 16:03   ` Leon Romanovsky
  2021-03-09  2:25   ` Jason Wang
  3 siblings, 2 replies; 13+ messages in thread
From: Zhu Lingshan @ 2021-03-08  8:35 UTC (permalink / raw)
  To: jasowang, mst, lulu
  Cc: virtualization, netdev, kvm, linux-kernel, Zhu Lingshan

This commit removes the version number string, using kernel
version is enough.

Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
---
 drivers/vdpa/ifcvf/ifcvf_main.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index fd5befc5cbcc..c34e1eec6b6c 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -14,7 +14,6 @@
 #include <linux/sysfs.h>
 #include "ifcvf_base.h"
 
-#define VERSION_STRING  "0.1"
 #define DRIVER_AUTHOR   "Intel Corporation"
 #define IFCVF_DRIVER_NAME       "ifcvf"
 
@@ -503,4 +502,3 @@ static struct pci_driver ifcvf_driver = {
 module_pci_driver(ifcvf_driver);
 
 MODULE_LICENSE("GPL v2");
-MODULE_VERSION(VERSION_STRING);
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 4/4] vDPA/ifcvf: remove the version number string
  2021-03-08  8:35 ` [PATCH V2 4/4] vDPA/ifcvf: remove the version number string Zhu Lingshan
@ 2021-03-08 16:03   ` Leon Romanovsky
  2021-03-09  2:25   ` Jason Wang
  1 sibling, 0 replies; 13+ messages in thread
From: Leon Romanovsky @ 2021-03-08 16:03 UTC (permalink / raw)
  To: Zhu Lingshan
  Cc: jasowang, mst, lulu, virtualization, netdev, kvm, linux-kernel

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 <lingshan.zhu@intel.com>
> ---
>  drivers/vdpa/ifcvf/ifcvf_main.c | 2 --
>  1 file changed, 2 deletions(-)
>

Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id
  2021-03-08  8:35 ` [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id Zhu Lingshan
@ 2021-03-09  2:18   ` Jason Wang
  0 siblings, 0 replies; 13+ messages in thread
From: Jason Wang @ 2021-03-09  2:18 UTC (permalink / raw)
  To: Zhu Lingshan, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel


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 <lingshan.zhu@intel.com>


Acked-by: Jason Wang <jasowang@redhat.com>


> ---
>   drivers/vdpa/ifcvf/ifcvf_main.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
> index fa1af301cf55..e501ee07de17 100644
> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
> @@ -324,7 +324,10 @@ static u32 ifcvf_vdpa_get_device_id(struct vdpa_device *vdpa_dev)
>   
>   static u32 ifcvf_vdpa_get_vendor_id(struct vdpa_device *vdpa_dev)
>   {
> -	return IFCVF_SUBSYS_VENDOR_ID;
> +	struct ifcvf_adapter *adapter = vdpa_to_adapter(vdpa_dev);
> +	struct pci_dev *pdev = adapter->pdev;
> +
> +	return pdev->subsystem_vendor;
>   }
>   
>   static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
  2021-03-08  8:35 ` [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA Zhu Lingshan
@ 2021-03-09  2:23   ` Jason Wang
  2021-03-09  2:28     ` Zhu, Lingshan
  0 siblings, 1 reply; 13+ messages in thread
From: Jason Wang @ 2021-03-09  2:23 UTC (permalink / raw)
  To: Zhu Lingshan, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel


On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
> This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
> for vDPA
>
> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
> ---
>   drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++
>   drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++
>   2 files changed, 10 insertions(+)
>
> diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h
> index 64696d63fe07..75d9a8052039 100644
> --- a/drivers/vdpa/ifcvf/ifcvf_base.h
> +++ b/drivers/vdpa/ifcvf/ifcvf_base.h
> @@ -23,6 +23,11 @@
>   #define IFCVF_SUBSYS_VENDOR_ID	0x8086
>   #define IFCVF_SUBSYS_DEVICE_ID	0x001A
>   
> +#define C5000X_PL_VENDOR_ID		0x1AF4
> +#define C5000X_PL_DEVICE_ID		0x1000
> +#define C5000X_PL_SUBSYS_VENDOR_ID	0x8086
> +#define C5000X_PL_SUBSYS_DEVICE_ID	0x0001


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


> +
>   #define IFCVF_SUPPORTED_FEATURES \
>   		((1ULL << VIRTIO_NET_F_MAC)			| \
>   		 (1ULL << VIRTIO_F_ANY_LAYOUT)			| \
> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
> index e501ee07de17..26a2dab7ca66 100644
> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
> @@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {
>   		IFCVF_DEVICE_ID,
>   		IFCVF_SUBSYS_VENDOR_ID,
>   		IFCVF_SUBSYS_DEVICE_ID) },
> +	{ PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
> +			 C5000X_PL_DEVICE_ID,
> +			 C5000X_PL_SUBSYS_VENDOR_ID,
> +			 C5000X_PL_SUBSYS_DEVICE_ID) },
> +
>   	{ 0 },
>   };
>   MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids
  2021-03-08  8:35 ` [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids Zhu Lingshan
@ 2021-03-09  2:24   ` Jason Wang
  0 siblings, 0 replies; 13+ messages in thread
From: Jason Wang @ 2021-03-09  2:24 UTC (permalink / raw)
  To: Zhu Lingshan, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel


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 <lingshan.zhu@intel.com>


Acked-by: Jason Wang <jasowang@redhat.com>

You probably need to rename the driver.

Thanks


> ---
>   drivers/vdpa/ifcvf/ifcvf_base.h | 8 ++++----
>   drivers/vdpa/ifcvf/ifcvf_main.c | 8 ++++----
>   2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h
> index 75d9a8052039..794d1505d857 100644
> --- a/drivers/vdpa/ifcvf/ifcvf_base.h
> +++ b/drivers/vdpa/ifcvf/ifcvf_base.h
> @@ -18,10 +18,10 @@
>   #include <uapi/linux/virtio_config.h>
>   #include <uapi/linux/virtio_pci.h>
>   
> -#define IFCVF_VENDOR_ID		0x1AF4
> -#define IFCVF_DEVICE_ID		0x1041
> -#define IFCVF_SUBSYS_VENDOR_ID	0x8086
> -#define IFCVF_SUBSYS_DEVICE_ID	0x001A
> +#define N3000_VENDOR_ID		0x1AF4
> +#define N3000_DEVICE_ID		0x1041
> +#define N3000_SUBSYS_VENDOR_ID	0x8086
> +#define N3000_SUBSYS_DEVICE_ID	0x001A
>   
>   #define C5000X_PL_VENDOR_ID		0x1AF4
>   #define C5000X_PL_DEVICE_ID		0x1000
> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
> index 26a2dab7ca66..fd5befc5cbcc 100644
> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
> @@ -480,10 +480,10 @@ static void ifcvf_remove(struct pci_dev *pdev)
>   }
>   
>   static struct pci_device_id ifcvf_pci_ids[] = {
> -	{ PCI_DEVICE_SUB(IFCVF_VENDOR_ID,
> -		IFCVF_DEVICE_ID,
> -		IFCVF_SUBSYS_VENDOR_ID,
> -		IFCVF_SUBSYS_DEVICE_ID) },
> +	{ PCI_DEVICE_SUB(N3000_VENDOR_ID,
> +			 N3000_DEVICE_ID,
> +			 N3000_SUBSYS_VENDOR_ID,
> +			 N3000_SUBSYS_DEVICE_ID) },
>   	{ PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
>   			 C5000X_PL_DEVICE_ID,
>   			 C5000X_PL_SUBSYS_VENDOR_ID,


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 4/4] vDPA/ifcvf: remove the version number string
  2021-03-08  8:35 ` [PATCH V2 4/4] vDPA/ifcvf: remove the version number string Zhu Lingshan
  2021-03-08 16:03   ` Leon Romanovsky
@ 2021-03-09  2:25   ` Jason Wang
  1 sibling, 0 replies; 13+ messages in thread
From: Jason Wang @ 2021-03-09  2:25 UTC (permalink / raw)
  To: Zhu Lingshan, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel


On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
> This commit removes the version number string, using kernel
> version is enough.
>
> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
> ---


Acked-by: Jason Wang <jasowang@redhat.com>


>   drivers/vdpa/ifcvf/ifcvf_main.c | 2 --
>   1 file changed, 2 deletions(-)
>
> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
> index fd5befc5cbcc..c34e1eec6b6c 100644
> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
> @@ -14,7 +14,6 @@
>   #include <linux/sysfs.h>
>   #include "ifcvf_base.h"
>   
> -#define VERSION_STRING  "0.1"
>   #define DRIVER_AUTHOR   "Intel Corporation"
>   #define IFCVF_DRIVER_NAME       "ifcvf"
>   
> @@ -503,4 +502,3 @@ static struct pci_driver ifcvf_driver = {
>   module_pci_driver(ifcvf_driver);
>   
>   MODULE_LICENSE("GPL v2");
> -MODULE_VERSION(VERSION_STRING);


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
  2021-03-09  2:23   ` Jason Wang
@ 2021-03-09  2:28     ` Zhu, Lingshan
  2021-03-09  2:42       ` Jason Wang
  0 siblings, 1 reply; 13+ messages in thread
From: Zhu, Lingshan @ 2021-03-09  2:28 UTC (permalink / raw)
  To: Jason Wang, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel



On 3/9/2021 10:23 AM, Jason Wang wrote:
>
> On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
>> This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
>> for vDPA
>>
>> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
>> ---
>>   drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++
>>   drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++
>>   2 files changed, 10 insertions(+)
>>
>> diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h 
>> b/drivers/vdpa/ifcvf/ifcvf_base.h
>> index 64696d63fe07..75d9a8052039 100644
>> --- a/drivers/vdpa/ifcvf/ifcvf_base.h
>> +++ b/drivers/vdpa/ifcvf/ifcvf_base.h
>> @@ -23,6 +23,11 @@
>>   #define IFCVF_SUBSYS_VENDOR_ID    0x8086
>>   #define IFCVF_SUBSYS_DEVICE_ID    0x001A
>>   +#define C5000X_PL_VENDOR_ID        0x1AF4
>> +#define C5000X_PL_DEVICE_ID        0x1000
>> +#define C5000X_PL_SUBSYS_VENDOR_ID    0x8086
>> +#define C5000X_PL_SUBSYS_DEVICE_ID    0x0001
>
>
> 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
>
>
>> +
>>   #define IFCVF_SUPPORTED_FEATURES \
>>           ((1ULL << VIRTIO_NET_F_MAC)            | \
>>            (1ULL << VIRTIO_F_ANY_LAYOUT)            | \
>> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c 
>> b/drivers/vdpa/ifcvf/ifcvf_main.c
>> index e501ee07de17..26a2dab7ca66 100644
>> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
>> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
>> @@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {
>>           IFCVF_DEVICE_ID,
>>           IFCVF_SUBSYS_VENDOR_ID,
>>           IFCVF_SUBSYS_DEVICE_ID) },
>> +    { PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
>> +             C5000X_PL_DEVICE_ID,
>> +             C5000X_PL_SUBSYS_VENDOR_ID,
>> +             C5000X_PL_SUBSYS_DEVICE_ID) },
>> +
>>       { 0 },
>>   };
>>   MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
  2021-03-09  2:28     ` Zhu, Lingshan
@ 2021-03-09  2:42       ` Jason Wang
  2021-03-09  5:50         ` Zhu, Lingshan
  0 siblings, 1 reply; 13+ messages in thread
From: Jason Wang @ 2021-03-09  2:42 UTC (permalink / raw)
  To: Zhu, Lingshan, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel


On 2021/3/9 10:28 上午, Zhu, Lingshan wrote:
>
>
> On 3/9/2021 10:23 AM, Jason Wang wrote:
>>
>> On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
>>> This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
>>> for vDPA
>>>
>>> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
>>> ---
>>>   drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++
>>>   drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++
>>>   2 files changed, 10 insertions(+)
>>>
>>> diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h 
>>> b/drivers/vdpa/ifcvf/ifcvf_base.h
>>> index 64696d63fe07..75d9a8052039 100644
>>> --- a/drivers/vdpa/ifcvf/ifcvf_base.h
>>> +++ b/drivers/vdpa/ifcvf/ifcvf_base.h
>>> @@ -23,6 +23,11 @@
>>>   #define IFCVF_SUBSYS_VENDOR_ID    0x8086
>>>   #define IFCVF_SUBSYS_DEVICE_ID    0x001A
>>>   +#define C5000X_PL_VENDOR_ID        0x1AF4
>>> +#define C5000X_PL_DEVICE_ID        0x1000
>>> +#define C5000X_PL_SUBSYS_VENDOR_ID    0x8086
>>> +#define C5000X_PL_SUBSYS_DEVICE_ID    0x0001
>>
>>
>> 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
>>
>>
>>> +
>>>   #define IFCVF_SUPPORTED_FEATURES \
>>>           ((1ULL << VIRTIO_NET_F_MAC)            | \
>>>            (1ULL << VIRTIO_F_ANY_LAYOUT)            | \
>>> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c 
>>> b/drivers/vdpa/ifcvf/ifcvf_main.c
>>> index e501ee07de17..26a2dab7ca66 100644
>>> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
>>> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
>>> @@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {
>>>           IFCVF_DEVICE_ID,
>>>           IFCVF_SUBSYS_VENDOR_ID,
>>>           IFCVF_SUBSYS_DEVICE_ID) },
>>> +    { PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
>>> +             C5000X_PL_DEVICE_ID,
>>> +             C5000X_PL_SUBSYS_VENDOR_ID,
>>> +             C5000X_PL_SUBSYS_DEVICE_ID) },
>>> +
>>>       { 0 },
>>>   };
>>>   MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);
>>
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
  2021-03-09  2:42       ` Jason Wang
@ 2021-03-09  5:50         ` Zhu, Lingshan
  0 siblings, 0 replies; 13+ messages in thread
From: Zhu, Lingshan @ 2021-03-09  5:50 UTC (permalink / raw)
  To: Jason Wang, mst, lulu; +Cc: virtualization, netdev, kvm, linux-kernel



On 3/9/2021 10:42 AM, Jason Wang wrote:
>
> On 2021/3/9 10:28 上午, Zhu, Lingshan wrote:
>>
>>
>> On 3/9/2021 10:23 AM, Jason Wang wrote:
>>>
>>> On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
>>>> This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
>>>> for vDPA
>>>>
>>>> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
>>>> ---
>>>>   drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++
>>>>   drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++
>>>>   2 files changed, 10 insertions(+)
>>>>
>>>> diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h 
>>>> b/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> index 64696d63fe07..75d9a8052039 100644
>>>> --- a/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> +++ b/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> @@ -23,6 +23,11 @@
>>>>   #define IFCVF_SUBSYS_VENDOR_ID    0x8086
>>>>   #define IFCVF_SUBSYS_DEVICE_ID    0x001A
>>>>   +#define C5000X_PL_VENDOR_ID        0x1AF4
>>>> +#define C5000X_PL_DEVICE_ID        0x1000
>>>> +#define C5000X_PL_SUBSYS_VENDOR_ID    0x8086
>>>> +#define C5000X_PL_SUBSYS_DEVICE_ID    0x0001
>>>
>>>
>>> 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.
>
>
>> 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
>
>
>> ifcvf drives this device in virtio 1.0 mode, set features 
>> VIRTIO_F_IOMMU_PLATFORM successfully.
>>
>> Thanks,
>> Zhu Lingshan
>>>
>>>
>>>> +
>>>>   #define IFCVF_SUPPORTED_FEATURES \
>>>>           ((1ULL << VIRTIO_NET_F_MAC)            | \
>>>>            (1ULL << VIRTIO_F_ANY_LAYOUT) | \
>>>> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c 
>>>> b/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> index e501ee07de17..26a2dab7ca66 100644
>>>> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> @@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {
>>>>           IFCVF_DEVICE_ID,
>>>>           IFCVF_SUBSYS_VENDOR_ID,
>>>>           IFCVF_SUBSYS_DEVICE_ID) },
>>>> +    { PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
>>>> +             C5000X_PL_DEVICE_ID,
>>>> +             C5000X_PL_SUBSYS_VENDOR_ID,
>>>> +             C5000X_PL_SUBSYS_DEVICE_ID) },
>>>> +
>>>>       { 0 },
>>>>   };
>>>>   MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);
>>>
>>
>


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2021-03-09  5:51 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-08  8:35 [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net Zhu Lingshan
2021-03-08  8:35 ` [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id Zhu Lingshan
2021-03-09  2:18   ` Jason Wang
2021-03-08  8:35 ` [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA Zhu Lingshan
2021-03-09  2:23   ` Jason Wang
2021-03-09  2:28     ` Zhu, Lingshan
2021-03-09  2:42       ` Jason Wang
2021-03-09  5:50         ` Zhu, Lingshan
2021-03-08  8:35 ` [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids Zhu Lingshan
2021-03-09  2:24   ` Jason Wang
2021-03-08  8:35 ` [PATCH V2 4/4] vDPA/ifcvf: remove the version number string Zhu Lingshan
2021-03-08 16:03   ` Leon Romanovsky
2021-03-09  2:25   ` Jason Wang

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).