[dpdk-dev] [PATCH v5 1/5] mbuf: introduce routine to get private mbuf pool flags

Olivier Matz olivier.matz at 6wind.com
Tue Jan 21 09:14:17 CET 2020


On Tue, Jan 21, 2020 at 08:00:17AM +0000, Slava Ovsiienko wrote:
> > -----Original Message-----
> > From: Stephen Hemminger <stephen at networkplumber.org>
> > Sent: Monday, January 20, 2020 22:44
> > To: Slava Ovsiienko <viacheslavo at mellanox.com>
> > Cc: dev at dpdk.org; Matan Azrad <matan at mellanox.com>; Raslan Darawsheh
> > <rasland at mellanox.com>; Ori Kam <orika at mellanox.com>; Shahaf Shuler
> > <shahafs at mellanox.com>; olivier.matz at 6wind.com; thomas at mellanox.net
> > Subject: Re: [PATCH v5 1/5] mbuf: introduce routine to get private mbuf pool
> > flags
> > 
> > On Mon, 20 Jan 2020 17:23:19 +0000
> > Viacheslav Ovsiienko <viacheslavo at mellanox.com> wrote:
> > 
> > > The routine rte_pktmbuf_priv_flags is introduced to fetch the flags
> > > from the mbuf memory pool private structure in unified fashion.
> > >
> > > Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
> > > Acked-by: Olivier Matz <olivier.matz at 6wind.com>
> > > ---
> > >  lib/librte_mbuf/rte_mbuf.h | 17 +++++++++++++++++
> > >  1 file changed, 17 insertions(+)
> > >
> > > diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
> > > index 2d4bda2..9b0691d 100644
> > > --- a/lib/librte_mbuf/rte_mbuf.h
> > > +++ b/lib/librte_mbuf/rte_mbuf.h
> > > @@ -306,6 +306,23 @@ struct rte_pktmbuf_pool_private {
> > >  	uint32_t flags; /**< reserved for future use. */  };
> > >
> > > +/**
> > > + * Return the flags from private data in an mempool structure.
> > > + *
> > > + * @param mp
> > > + *   A pointer to the mempool structure.
> > > + * @return
> > > + *   The flags from the private data structure.
> > > + */
> > > +static inline uint32_t
> > > +rte_pktmbuf_priv_flags(struct rte_mempool *mp) {
> > > +	struct rte_pktmbuf_pool_private *mbp_priv;
> > > +
> > > +	mbp_priv = (struct rte_pktmbuf_pool_private
> > *)rte_mempool_get_priv(mp);
> > > +	return mbp_priv->flags;
> > > +}
> > > +
> > >  #ifdef RTE_LIBRTE_MBUF_DEBUG
> > >
> > >  /**  check mbuf type in debug mode */
> > 
> > Looks fine, but a couple of minor suggestions.
> > 
> > 
> > Since this doesn't modify the mbuf, the arguments should be const.
> > Since rte_mempool_get_priv returns void *, the cast is unnecessary.
> 
> rte_mempool_get_priv() does not expect "const", so adding "const" is a bit problematic,
> and we should not change the rte_mempool_get_priv() prototype.
> Do you think we should take private structure pointer directly from the pool
> structure instead of calling rte_mempool_get_priv() ?

I'm not sure it would work. The problem is that to get the priv,
we do pool_ptr + offset. So if we want to remove the const, we'll
have to do a cast to "unconst". Not sure it is worth doing it.

Thanks
Olivier


More information about the dev mailing list