[dpdk-dev] [PATCH v2 23/41] mempool: add support for the new allocation methods

Olivier Matz olivier.matz at 6wind.com
Wed Mar 21 09:32:46 CET 2018


On Wed, Mar 21, 2018 at 10:49:55AM +0300, Andrew Rybchenko wrote:
> On 03/19/2018 08:11 PM, Olivier Matz wrote:
> > > +	 *
> > > +	 * if we don't need our mempools to have physically contiguous objects,
> > > +	 * then just set page shift and page size to 0, because the user has
> > > +	 * indicated that there's no need to care about anything.
> > > +	 *
> > > +	 * if we do need contiguous objects, there is also an option to reserve
> > > +	 * the entire mempool memory as one contiguous block of memory, in
> > > +	 * which case the page shift and alignment wouldn't matter as well.
> > > +	 *
> > > +	 * if we require contiguous objects, but not necessarily the entire
> > > +	 * mempool reserved space to be contiguous, then there are two options.
> > > +	 *
> > > +	 * if our IO addresses are virtual, not actual physical (IOVA as VA
> > > +	 * case), then no page shift needed - our memory allocation will give us
> > > +	 * contiguous physical memory as far as the hardware is concerned, so
> > > +	 * act as if we're getting contiguous memory.
> > > +	 *
> > > +	 * if our IO addresses are physical, we may get memory from bigger
> > > +	 * pages, or we might get memory from smaller pages, and how much of it
> > > +	 * we require depends on whether we want bigger or smaller pages.
> > > +	 * However, requesting each and every memory size is too much work, so
> > > +	 * what we'll do instead is walk through the page sizes available, pick
> > > +	 * the smallest one and set up page shift to match that one. We will be
> > > +	 * wasting some space this way, but it's much nicer than looping around
> > > +	 * trying to reserve each and every page size.
> > > +	 */
> > This comment is helpful to understand, thanks.
> > 
> > (by the way, reading it makes me think we should rename
> > MEMPOOL_F_*_PHYS_CONTIG as MEMPOOL_F_*_IOVA_CONTIG)
> 
> I'll care about renaming in my patchset about mempool_ops API.

Great, thanks!
Please also keep the old ones for now, we will remove them later.


More information about the dev mailing list