Internalizing M_EXT refcounting and lwbufs

Samuel J. Greear sjg at
Tue Dec 7 09:02:15 PST 2010

On Tue, Dec 7, 2010 at 9:23 AM, Matthew Dillon
<dillon at> wrote:
> :I have had a patch kicking around for a while that I finally decided
> :to beat into committable form, that brings the reference count into
> :the m_ext structure. Currently there are very few users of M_EXT so I
> :just modified them all to manage the refcount manually with atomic
> :ops. Would we prefer this were functionalized, like FreeBSD has done?
> :
> :Also, It would be great if we could stuff a lwbuf into m_ext, but the
> :only reasonable way I can see to do that is to add an additional
> :function pointer which would be used to get the stable reference, as
> :well as probably an offset, calling conventions would be slightly
> :different for free in this case, and that route just doesn't feel very
> :clean...  So I was wondering if anyone had any suggestions?
> :
> :Thanks,
> :Sam
>    Wait, embedded into m_ext?  The ref count, or the m_ext structure,
>    would have to be made a pointer so multiple mbufs can reference
>    the same m_ext.
>                                        -Matt
>                                        Matthew Dillon
>                                        <dillon at>

Yeah, a kmalloc(9)'d int pointed to by the m_ext structure, versus
external as now -- sorry if I was unclear.


More information about the Kernel mailing list