On Mon, Jan 20, 2020 at 05:23:20PM +0000, Viacheslav Ovsiienko wrote: > Update detach routine to check the mbuf pool type. > Introduce the special internal version of detach routine to handle > the special case of pinned external bufferon mbuf freeing. > > Signed-off-by: Shahaf Shuler <shah...@mellanox.com> > Signed-off-by: Viacheslav Ovsiienko <viachesl...@mellanox.com>
[...] In case there is a new version, can you please add some newlines: > +static inline int __rte_pktmbuf_pinned_extbuf_decref(struct rte_mbuf *m) > +{ > + struct rte_mbuf_ext_shared_info *shinfo; > + > + /* Clear flags, mbuf is being freed. */ > + m->ol_flags = EXT_ATTACHED_MBUF; > + shinfo = m->shinfo; here > + /* Optimize for performance - do not dec/reinit */ > + if (likely(rte_mbuf_ext_refcnt_read(shinfo) == 1)) > + return 0; here > + /* > + * Direct usage of add primitive to avoid > + * duplication of comparing with one. > + */ > + if (likely(rte_atomic16_add_return > + (&shinfo->refcnt_atomic, -1))) > + return 1; here > + /* Reinitialize counter before mbuf freeing. */ > + rte_mbuf_ext_refcnt_set(shinfo, 1); > + return 0; > +} > + > +/** > * Decrease reference counter and unlink a mbuf segment > * > * This function does the same than a free, except that it does not Apart from this, Acked-by: Olivier Matz <olivier.m...@6wind.com>