[dpdk-dev] [PATCH v6 08/12] linuxapp/eal: auto detect iova mode
Aaron Conole
aconole at redhat.com
Wed Aug 16 19:38:37 CEST 2017
Santosh Shukla <santosh.shukla at caviumnetworks.com> writes:
> - Moving late bus scanning to up..just after eal_parsing.
> - Auto detect iova mapping mode, based on the result of
> rte_bus_scan_iommu_class.
>
> Signed-off-by: Santosh Shukla <santosh.shukla at caviumnetworks.com>
> Signed-off-by: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> ---
> lib/librte_eal/linuxapp/eal/eal.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
> index febbafdb3..5382f6c00 100644
> --- a/lib/librte_eal/linuxapp/eal/eal.c
> +++ b/lib/librte_eal/linuxapp/eal/eal.c
> @@ -798,6 +798,15 @@ rte_eal_init(int argc, char **argv)
> return -1;
> }
>
> + if (rte_bus_scan()) {
> + rte_eal_init_alert("Cannot scan the buses for devices\n");
> + rte_errno = ENODEV;
Since this now happens before hugetlbs are allocated, is it possible to
retry? If so, then I would say to clear the run_once variable.
> + return -1;
> + }
> +
> + /* autodetect the iova mapping mode (default is iova_pa) */
> + rte_eal_get_configuration()->iova_mode = rte_bus_get_iommu_class();
> +
> if (internal_config.no_hugetlbfs == 0 &&
> internal_config.process_type != RTE_PROC_SECONDARY &&
> internal_config.xen_dom0_support == 0 &&
> @@ -900,12 +909,6 @@ rte_eal_init(int argc, char **argv)
> return -1;
> }
>
> - if (rte_bus_scan()) {
> - rte_eal_init_alert("Cannot scan the buses for devices\n");
> - rte_errno = ENODEV;
> - return -1;
> - }
> -
> RTE_LCORE_FOREACH_SLAVE(i) {
>
> /*
More information about the dev
mailing list