[v2] net/qede: support IOVA VA mode

Message ID 20190308092855.10942-1-ktraynor@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [v2] net/qede: support IOVA VA mode |

Checks

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

Commit Message

Kevin Traynor March 8, 2019, 9:28 a.m. UTC
  Set RTE_PCI_DRV_IOVA_AS_VA in drv_flags. This allows initializing qede
PMD as non-root also on Linux v4.x, where /proc/self/pagemap can't be
acccessed without CAP_SYS_ADMIN privileges.

The flag was introduced generically but not in pmds in commit:
815c7deaed2d ("pci: get IOMMU class on Linux")

Cc: stable@dpdk.org

Acked-by: Shahed Shaikh <shshaikh@marvell.com>
Acked-by: Rasesh Mody <rmody@marvell.com>
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
v2: fixed spacing error

 drivers/net/qede/qede_ethdev.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

Ferruh Yigit March 15, 2019, 6:18 p.m. UTC | #1
On 3/8/2019 9:28 AM, Kevin Traynor wrote:
> Set RTE_PCI_DRV_IOVA_AS_VA in drv_flags. This allows initializing qede
> PMD as non-root also on Linux v4.x, where /proc/self/pagemap can't be
> acccessed without CAP_SYS_ADMIN privileges.
> 
> The flag was introduced generically but not in pmds in commit:
> 815c7deaed2d ("pci: get IOMMU class on Linux")
> 
> Cc: stable@dpdk.org
> 
> Acked-by: Shahed Shaikh <shshaikh@marvell.com>
> Acked-by: Rasesh Mody <rmody@marvell.com>
> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 518673dce..0b2f305e1 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -2736,5 +2736,6 @@  static int qedevf_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
 static struct rte_pci_driver rte_qedevf_pmd = {
 	.id_table = pci_id_qedevf_map,
-	.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
+	.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
+		     RTE_PCI_DRV_IOVA_AS_VA,
 	.probe = qedevf_eth_dev_pci_probe,
 	.remove = qedevf_eth_dev_pci_remove,
@@ -2755,5 +2756,6 @@  static int qede_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
 static struct rte_pci_driver rte_qede_pmd = {
 	.id_table = pci_id_qede_map,
-	.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
+	.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
+		     RTE_PCI_DRV_IOVA_AS_VA,
 	.probe = qede_eth_dev_pci_probe,
 	.remove = qede_eth_dev_pci_remove,