[dpdk-stable] [PATCH 2/2] mempool: remove check for bad IOVA when populating
Li, WenjieX A
wenjiex.a.li at intel.com
Tue Nov 19 02:45:10 CET 2019
Tested-by: Chen, BoX C <box.c.chen at intel.com>
> -----Original Message-----
> From: stable [mailto:stable-bounces at dpdk.org] On Behalf Of Anatoly Burakov
> Sent: Thursday, November 14, 2019 9:58 PM
> To: dev at dpdk.org
> Cc: Olivier Matz <olivier.matz at 6wind.com>; Andrew Rybchenko
> <arybchenko at solarflare.com>; david.marchand at redhat.com; stable at dpdk.org
> Subject: [dpdk-stable] [PATCH 2/2] mempool: remove check for bad IOVA when
> populating
>
> Currently, mempool will check if IOVA is bad for a segment, and reject the IOVA
> if hugepages are also enabled. This check is wrong because now that we have
> external memory segments, they are allowed to have their IOVA's to be invalid.
> This check also doesn't make much sense in the first place, because the
> following code can handle bad IOVA's perfectly well (and in fact, this check is
> not triggering a failure when --no-huge option is enabled), so there is not much
> sense to check for this in the first place.
>
> Fixes: 950e8fb4e194 ("mem: allow registering external memory areas")
> Cc: stable at dpdk.org
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
> ---
>
> Notes:
> An alternative implementation would be to add a socket ID check to see
> if the memory being allocated from belongs to an external segment.
>
> lib/librte_mempool/rte_mempool.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/lib/librte_mempool/rte_mempool.c
> b/lib/librte_mempool/rte_mempool.c
> index 8da2e471c7..78d8eb941e 100644
> --- a/lib/librte_mempool/rte_mempool.c
> +++ b/lib/librte_mempool/rte_mempool.c
> @@ -390,11 +390,6 @@ rte_mempool_populate_virt(struct rte_mempool *mp,
> char *addr,
>
> iova = get_iova(addr + off);
>
> - if (iova == RTE_BAD_IOVA && rte_eal_has_hugepages()) {
> - ret = -EINVAL;
> - goto fail;
> - }
> -
> /* populate with the largest group of contiguous pages */
> for (phys_len = RTE_MIN(
> (size_t)(RTE_PTR_ALIGN_CEIL(addr + off + 1, pg_sz) -
> --
> 2.17.1
More information about the stable
mailing list