It seems to be a good idea, thank you, Olivier! But a few questions: 1. Will this changes affect performance? 2. In PATCH 2/2 you have a small bug:
In file rte_ring.h, in comments describing rte_ring_init function you have: + * @param name + * The size of the ring. But it is name of the ring, not size. Best regards, Igor Ryzhov 07.05.2014 15:39, Olivier MATZ ?????: > Hi Igor, > > On 05/07/2014 09:54 AM, Igor Ryzhov wrote: >> I noticed that in Memzone realization there is a special global variable >> "free_memseg" containing pointers on free memory segments. >> An memzone reserve function just finst the best segment for allocation >> from this "free_memseg" variable. >> >> So I think there is a possibility to unreserve already reserved memory >> back to "free_memseg", and impossibility of unreserving memory is just >> because there is no function for that, not because it is impossible in >> principle. >> Am I right? Or there are any restrictions? > > I think that implementing a freeing of memory segment is feasible, but > it would require some work to properly merge freed zones to avoid memory > fragmentation. > > Another solution is to allocate/free rings in standard memory (malloc > for instance) instead of rte_memzones. Let me know if the patches I've > just sent on the mailing list solves your issue. > > By the way, I plan to do the same thing for mempools in the coming > weeks but there is much more work. > > Regards, > Olivier >