[dpdk-dev] [PATCH] mbuf: remove inconsistent assert statements

Don Provan dprovan at bivio.net
Thu Jun 9 20:42:26 CEST 2016

> -----Original Message-----
> From: Ananyev, Konstantin [mailto:konstantin.ananyev at intel.com] 
> Sent: Thursday, June 09, 2016 8:45 AM
> To: Thomas Monjalon <thomas.monjalon at 6wind.com>
> Cc: dev at dpdk.org; Olivier Matz <olivier.matz at 6wind.com>; Adrien Mazarguil <adrien.mazarguil at 6wind.com>; Zhang, Helin <helin.zhang at intel.com>
> Subject: Re: [dpdk-dev] [PATCH] mbuf: remove inconsistent assert statements
> But as I said, if everyone are that desperate about symmetry, we can just create a new public function:
> void
> rte_mbuf_raw_free(stuct rte_mbuf *m)
> {
>       if (rte_mbuf_refcnt_update(m, -1) == 0)
>                 __rte_mbuf_raw_free(m);
> }

Well, if you're going to do that, let's recognize that rte_mbuf_raw_free() was misnamed:
it doesn't free an mbuf, it returns an mbuf that's already free back to the pool. So instead
of "__rte_mbuf_raw_free", I'd call it "rte_mbuf_raw_release".

Logically I like this solution, as I'm very uncomfortable with the idea that a free mbuf
might sometimes have refcnt set to one. On the other hand, if mbufs can often be freed
without touching refcnt, that could be a big win that might persuade me to accept being

-don provan
dprovan at bivio.net

More information about the dev mailing list