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.


Reply via email to