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 >