eal: add warning for incompatibe requested IOVA mode
Checks
Commit Message
The DPDK can be compiled to be run in IOVA VA mode with
'enable_iova_as_pa=false' meson option. It disables support
of the physical address field in the mbufs and application
can not be run in 'IOVA as PA mode'.
The patch adds warning if some bus requires the 'IOVA as PA'
mode in runtime and the 'enable_iova_as_pa=false' meson option
was configured on build.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
lib/eal/common/eal_common_bus.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Comments
On 6/6/2023 4:39 PM, Viacheslav Ovsiienko wrote:
> The DPDK can be compiled to be run in IOVA VA mode with
> 'enable_iova_as_pa=false' meson option. It disables support
> of the physical address field in the mbufs and application
> can not be run in 'IOVA as PA mode'.
>
> The patch adds warning if some bus requires the 'IOVA as PA'
> mode in runtime and the 'enable_iova_as_pa=false' meson option
> was configured on build.
>
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
12/06/2023 11:55, Burakov, Anatoly:
> On 6/6/2023 4:39 PM, Viacheslav Ovsiienko wrote:
> > The DPDK can be compiled to be run in IOVA VA mode with
> > 'enable_iova_as_pa=false' meson option. It disables support
> > of the physical address field in the mbufs and application
> > can not be run in 'IOVA as PA mode'.
> >
> > The patch adds warning if some bus requires the 'IOVA as PA'
> > mode in runtime and the 'enable_iova_as_pa=false' meson option
> > was configured on build.
> >
> > Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Applied, thanks.
@@ -239,9 +239,13 @@ rte_bus_get_iommu_class(void)
rte_bus_name(bus),
bus_iova_mode == RTE_IOVA_DC ? "DC" :
(bus_iova_mode == RTE_IOVA_PA ? "PA" : "VA"));
- if (bus_iova_mode == RTE_IOVA_PA)
+ if (bus_iova_mode == RTE_IOVA_PA) {
buses_want_pa = true;
- else if (bus_iova_mode == RTE_IOVA_VA)
+ if (!RTE_IOVA_IN_MBUF)
+ RTE_LOG(WARNING, EAL,
+ "Bus %s wants IOVA as PA not compatible with 'enable_iova_as_pa=false' build option.\n",
+ rte_bus_name(bus));
+ } else if (bus_iova_mode == RTE_IOVA_VA)
buses_want_va = true;
}
if (buses_want_va && !buses_want_pa) {