[dpdk-stable] [PATCH 1/2] mempool: use actual IOVA addresses when populating

David Marchand david.marchand at redhat.com
Tue Nov 19 21:56:09 CET 2019


On Thu, Nov 14, 2019 at 2:58 PM Anatoly Burakov
<anatoly.burakov at intel.com> wrote:
>
> Currently, when mempool is being populated, we get IOVA address
> of every segment using rte_mem_virt2iova(). This works for internal
> memory, but does not really work for external memory, and does not
> work on platforms which return RTE_BAD_IOVA as a result of this
> call (such as FreeBSD). Moreover, even when it works, the function
> in question will do unnecessary pagewalks in IOVA as PA mode, as
> it falls back to rte_mem_virt2phy() instead of just doing a lookup in
> internal memseg table.
>
> To fix it, replace the call to first attempt to look through the
> internal memseg table (this takes care of internal and external memory),
> and fall back to rte_mem_virt2iova() when unable to perform VA->IOVA
> translation via memseg table.
>
> Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
> Cc: stable at dpdk.org
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>

Acked-by: Olivier Matz <olivier.matz at 6wind.com>
Tested-by: Bo Chen <box.c.chen at intel.com>

Series applied, thanks.

--
David Marchand



More information about the stable mailing list