[dpdk-dev] Regarding rte_memzone_reserve with len =0

Gonzalez Monroy, Sergio sergio.gonzalez.monroy at intel.com
Wed May 13 12:14:24 CEST 2015


On 12/05/2015 15:48, Olivier MATZ wrote:
> Hi Sergio,
>
> On 05/06/2015 06:10 PM, Gonzalez Monroy, Sergio wrote:
>> Hi,
>>
>> I was wondering about the use case of rte_memzone_reserve_xxxx APIs with
>> len=0.
>>
>>  From the docs (http://dpdk.org/doc/api/rte__memzone_8h.html):
>> len          The size of the memory to be reserved. If it is 0, the
>> biggest contiguous zone will be reserved.
>>
>> What are the use cases?
>> When would you want a memzone of undetermined size?
>>
>> Any thoughts appreciated.
>
> As the application does not have access to the lengths of memory
> segments, probably the initial idea is when an application wants
> to allocate more memory that the biggest segment.
>
> Example, the application wants to allocate 1G (even fragmented):
>
> - the easy case is when it can be done in one call to
>   rte_memzone_reserve(1G)
>
> - else, the application can iterate like in this sample:
>
>      remain = 1 * 1024 * 1024 * 1024;
>      while (remain > 0) {
>          mz = rte_memzone_reserve(remain);
>          if (mz != NULL)
>             return 0;
>          mz = rte_memzone_reserve(remain);
You meant rte_memzone_reserve(0) here, right?
> if (mz == NULL)
>             return -1;
>          remain -= mz->len;
>      }
>
Thanks Olivier, that makes sense.

Sergio
> Regards,
> Olivier
>



More information about the dev mailing list