[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