[dpdk-dev] Regarding rte_memzone_reserve with len =0

Olivier MATZ olivier.matz at 6wind.com
Tue May 12 16:48:23 CEST 2015


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);
          if (mz == NULL)
             return -1;
          remain -= mz->len;
      }

Regards,
Olivier



More information about the dev mailing list