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