[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