net/mlx: support IOVA VA mode

Message ID 20190502014436.40545-1-yskoh@mellanox.com (mailing list archive)
State Superseded, archived
Delegated to: Shahaf Shuler
Headers
Series net/mlx: support IOVA VA mode |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Yongseok Koh May 2, 2019, 1:44 a.m. UTC
  Set RTE_PCI_DRV_IOVA_AS_VA to driver's drv_flags as device's IOMMU takes
virtual address.

Cc: stable@dpdk.org
Cc: Davide Caratti <dcaratti@redhat.com>

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
---
 drivers/net/mlx4/mlx4.c | 4 ++--
 drivers/net/mlx5/mlx5.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
  

Comments

Yongseok Koh May 2, 2019, 7:31 a.m. UTC | #1
> On May 1, 2019, at 6:44 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
> 
> Set RTE_PCI_DRV_IOVA_AS_VA to driver's drv_flags as device's IOMMU takes
> virtual address.
> 
> Cc: stable@dpdk.org
> Cc: Davide Caratti <dcaratti@redhat.com>
> 
> Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
> ---

Self nack.
pci_one_device_has_iova_va() checks RTE_KDRV_VFIO.
Will send out v2 with adding RTE_KDRV_NIC_MLX.

> drivers/net/mlx4/mlx4.c | 4 ++--
> drivers/net/mlx5/mlx5.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
> index fe559c0407..eccb77b410 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -1133,8 +1133,8 @@ static struct rte_pci_driver mlx4_driver = {
> 	},
> 	.id_table = mlx4_pci_id_map,
> 	.probe = mlx4_pci_probe,
> -	.drv_flags = RTE_PCI_DRV_INTR_LSC |
> -		     RTE_PCI_DRV_INTR_RMV,
> +	.drv_flags = RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV |
> +		     RTE_PCI_DRV_IOVA_AS_VA,
> };
> 
> #ifdef RTE_IBVERBS_LINK_DLOPEN
> diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
> index de85e85300..ecab7f899f 100644
> --- a/drivers/net/mlx5/mlx5.c
> +++ b/drivers/net/mlx5/mlx5.c
> @@ -2101,8 +2101,8 @@ static struct rte_pci_driver mlx5_driver = {
> 	.remove = mlx5_pci_remove,
> 	.dma_map = mlx5_dma_map,
> 	.dma_unmap = mlx5_dma_unmap,
> -	.drv_flags = (RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV |
> -		      RTE_PCI_DRV_PROBE_AGAIN),
> +	.drv_flags = RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV |
> +		     RTE_PCI_DRV_PROBE_AGAIN | RTE_PCI_DRV_IOVA_AS_VA,
> };
> 
> #ifdef RTE_IBVERBS_LINK_DLOPEN
> -- 
> 2.11.0
>
  

Patch

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index fe559c0407..eccb77b410 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -1133,8 +1133,8 @@  static struct rte_pci_driver mlx4_driver = {
 	},
 	.id_table = mlx4_pci_id_map,
 	.probe = mlx4_pci_probe,
-	.drv_flags = RTE_PCI_DRV_INTR_LSC |
-		     RTE_PCI_DRV_INTR_RMV,
+	.drv_flags = RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV |
+		     RTE_PCI_DRV_IOVA_AS_VA,
 };
 
 #ifdef RTE_IBVERBS_LINK_DLOPEN
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index de85e85300..ecab7f899f 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -2101,8 +2101,8 @@  static struct rte_pci_driver mlx5_driver = {
 	.remove = mlx5_pci_remove,
 	.dma_map = mlx5_dma_map,
 	.dma_unmap = mlx5_dma_unmap,
-	.drv_flags = (RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV |
-		      RTE_PCI_DRV_PROBE_AGAIN),
+	.drv_flags = RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV |
+		     RTE_PCI_DRV_PROBE_AGAIN | RTE_PCI_DRV_IOVA_AS_VA,
 };
 
 #ifdef RTE_IBVERBS_LINK_DLOPEN