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 Signed-off-by: Kevin Traynor <ktraynor@redhat.com> --- drivers/net/qede/qede_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index 518673dce..6b330c2b2 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, -- 2.20.1
> -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Kevin Traynor > Sent: Friday, March 8, 2019 12:09 AM > To: Rasesh Mody <rmody@marvell.com>; dev@dpdk.org > Cc: Kevin Traynor <ktraynor@redhat.com>; stable@dpdk.org > Subject: [dpdk-dev] [PATCH] net/qede: support IOVA VA mode > > 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 > > Signed-off-by: Kevin Traynor <ktraynor@redhat.com> Acked-by: Shahed Shaikh <shshaikh@marvell.com> Thanks, Shahed > --- > > drivers/net/qede/qede_ethdev.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c > index 518673dce..6b330c2b2 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, > -- > 2.20.1
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(-) 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, -- 2.20.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.