[dpdk-dev] pci: get IOMMU class sPAPR iommu fix
Checks
Commit Message
PPC64 sPAPR iommu does not support iova as va.
Use pa mode instead.
Signed-off-by: Jonas Pfefferle <jpf@zurich.ibm.com>
---
drivers/bus/pci/linux/pci.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
Comments
03/11/2017 13:05, Jonas Pfefferle:
> PPC64 sPAPR iommu does not support iova as va.
> Use pa mode instead.
>
> Signed-off-by: Jonas Pfefferle <jpf@zurich.ibm.com>
Applied, thanks
Thomas Monjalon <thomas@monjalon.net> wrote on 11/07/2017 12:38:11 AM:
> From: Thomas Monjalon <thomas@monjalon.net>
> To: Jonas Pfefferle <jpf@zurich.ibm.com>
> Cc: dev@dpdk.org, anatoly.burakov@intel.com
> Date: 11/07/2017 12:38 AM
> Subject: Re: [dpdk-dev] [PATCH] pci: get IOMMU class sPAPR iommu fix
>
> 03/11/2017 13:05, Jonas Pfefferle:
> > PPC64 sPAPR iommu does not support iova as va.
> > Use pa mode instead.
> >
> > Signed-off-by: Jonas Pfefferle <jpf@zurich.ibm.com>
>
> Applied, thanks
>
Hi Thomas,
I just noticed that I send in an old patch by mistake.
It uses the wrong define RTE_ARCH_PPC64 instead of RTE_ARCH_PPC_64.
Sorry for this, I will send in a fix for this in the next hour.
Thanks,
Jonas
07/11/2017 15:31, Jonas Pfefferle1:
> Thomas Monjalon <thomas@monjalon.net> wrote on 11/07/2017 12:38:11 AM:
>
> > From: Thomas Monjalon <thomas@monjalon.net>
> > To: Jonas Pfefferle <jpf@zurich.ibm.com>
> > Cc: dev@dpdk.org, anatoly.burakov@intel.com
> > Date: 11/07/2017 12:38 AM
> > Subject: Re: [dpdk-dev] [PATCH] pci: get IOMMU class sPAPR iommu fix
> >
> > 03/11/2017 13:05, Jonas Pfefferle:
> > > PPC64 sPAPR iommu does not support iova as va.
> > > Use pa mode instead.
> > >
> > > Signed-off-by: Jonas Pfefferle <jpf@zurich.ibm.com>
> >
> > Applied, thanks
> >
>
> Hi Thomas,
>
> I just noticed that I send in an old patch by mistake.
> It uses the wrong define RTE_ARCH_PPC64 instead of RTE_ARCH_PPC_64.
> Sorry for this, I will send in a fix for this in the next hour.
OK, thanks for the notice
@@ -586,6 +586,12 @@ rte_pci_get_iommu_class(void)
bool is_vfio_noiommu_enabled = true;
bool has_iova_va;
bool is_bound_uio;
+ bool spapr_iommu =
+#if defined(RTE_ARCH_PPC64)
+ true;
+#else
+ false;
+#endif
is_bound = pci_one_device_is_bound();
if (!is_bound)
@@ -598,7 +604,8 @@ rte_pci_get_iommu_class(void)
true : false;
#endif
- if (has_iova_va && !is_bound_uio && !is_vfio_noiommu_enabled)
+ if (has_iova_va && !is_bound_uio && !is_vfio_noiommu_enabled &&
+ !spapr_iommu)
return RTE_IOVA_VA;
if (has_iova_va) {
@@ -607,6 +614,8 @@ rte_pci_get_iommu_class(void)
RTE_LOG(WARNING, EAL, "vfio-noiommu mode configured\n");
if (is_bound_uio)
RTE_LOG(WARNING, EAL, "few device bound to UIO\n");
+ if (spapr_iommu)
+ RTE_LOG(WARNING, EAL, "sPAPR iommu does not support iova as va\n");
}
return RTE_IOVA_PA;