[dpdk-dev] [PATCH v5 2/5] mbuf: detach mbuf with pinned external buffer
Olivier Matz
olivier.matz at 6wind.com
Mon Jan 20 18:40:37 CET 2020
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 <shahafs at mellanox.com>
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at 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.matz at 6wind.com>
More information about the dev
mailing list