Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Aug 2013 20:18:36 +0200
From:      Andre Oppermann <andre@freebsd.org>
To:        Navdeep Parhar <np@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, freebsd-net@freebsd.org, Peter Grehan <grehan@freebsd.org>
Subject:   Re: M_NOFREE removal (was Re: svn commit: r254520 - in head/sys: kern sys)
Message-ID:  <5215047C.8080107@freebsd.org>
In-Reply-To: <5214ED19.40907@FreeBSD.org>
References:  <201308191116.r7JBGsc6065793@svn.freebsd.org> <521256CE.6070706@FreeBSD.org> <5212587A.2080202@freebsd.org> <52128937.1010407@freebsd.org> <52129E55.30803@freebsd.org> <5214D7E8.1080106@freebsd.org> <5214ED19.40907@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 21.08.2013 18:38, Navdeep Parhar wrote:
> 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.

Mea culpa.  You're totally right.  I have mixed up my mental model with
another working tree I carry along for quite some time.  In it (*ext_free)
completely replaces mb_free_ext() making it very easy to keep the mbuf.
We should move that way hopefully sooner than later, simplifying a couple
of things including externally managed refcounts.

Sorry for the chaos and not getting it.

M_NOFREE is back with r254605.

-- 
Andre




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5215047C.8080107>