[dpdk-dev] [PATCH v13 1/3] mempool: support external mempool operations

Hunt, David david.hunt at intel.com
Fri Jun 17 12:47:43 CEST 2016


On 17/6/2016 11:18 AM, Olivier Matz wrote:
> Hi David,
>
> While testing Lazaros' patch, I found an issue in this series.
> I the test application is started with --no-huge, it does not work,
> the mempool_autotest does not work. Please find the exaplanation
> below:
>
> On 06/16/2016 02:30 PM, David Hunt wrote:
>> @@ -386,9 +352,9 @@ rte_mempool_populate_phys(struct rte_mempool *mp, char *vaddr,
>>   	int ret;
>>   
>>   	/* create the internal ring if not already done */
>> -	if ((mp->flags & MEMPOOL_F_RING_CREATED) == 0) {
>> -		ret = rte_mempool_ring_create(mp);
>> -		if (ret < 0)
>> +	if ((mp->flags & MEMPOOL_F_POOL_CREATED) == 0) {
>> +		ret = rte_mempool_ops_alloc(mp);
>> +		if (ret != 0)
>>   			return ret;
>>   	}
>>   
> Previously, the function rte_mempool_ring_create(mp) was setting the
> MEMPOOL_F_RING_CREATED flag. Now it is not set. I think we could
> set it just after the "return ret".
>
> When started with --no-huge, the mempool memory is allocated in
> several chunks (one per page), so it tries to allocate the ring for
> each chunk.
>
> Regards,
> Olivier

OK, Will do.

                 ret = rte_mempool_ops_alloc(mp);
                 if (ret != 0)
                         return ret;
+               mp->flags |= MEMPOOL_F_POOL_CREATED;

Rgds,
Dave.




More information about the dev mailing list