Internalizing M_EXT refcounting and lwbufs
Samuel J. Greear
sjg at evilcode.net
Tue Dec 7 09:02:15 PST 2010
On Tue, Dec 7, 2010 at 9:23 AM, Matthew Dillon
<dillon at apollo.backplane.com> 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?
> 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.
> Matthew Dillon
> <dillon at backplane.com>
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