M_NOFREE removal (was Re: svn commit: r254520 - in head/sys: kern sys)

Navdeep Parhar np at FreeBSD.org
Wed Aug 21 16:38:54 UTC 2013


On 08/21/13 08:08, Andre Oppermann wrote:
> On 20.08.2013 00:38, Peter Grehan wrote:
<snip>
> 
>>   If there's an alternative to M_NOFREE, I'd be more than happy to use
>> that.
> 
> Set up your own (*ext_free) function and omit freeing of the mbuf
> itself.  Make
> sure to properly track your mbufs to avoid leaking them.
> 

How is this an alternate to M_NOFREE?  Your suggestion indicates that
you may have removed M_NOFREE thinking it did something other than what
it actually did.  And this suggestion doesn't even work -- note the
uma_zfree(zone_mbuf, m) at the end of mb_free_ext that would run after
any custom ext_free.

To recap: M_NOFREE was the way to tell the mbuf subsystem that the mbuf
does not come from zone_mbuf.  Nothing more and nothing less.  The mbuf
was in other ways like any other mbuf and could have a pkthdr (or not),
internal storage (or not), external cluster (or not), etc. etc.

Regards,
Navdeep


More information about the freebsd-net mailing list