mbuf revision, testers/comments wanted.
Jeff Roberson
jroberson at jroberson.net
Mon Feb 2 11:46:24 PST 2009
On Sun, 1 Feb 2009, Julian Elischer wrote:
> Jeff Roberson wrote:
>> http://people.freebsd.org/~jeff/mbuf_ref2.diff
>>
>> Hello,
>>
>> I have been experimenting with different revisions to the mbuf api to
>> improve performance and simplify code. This patch is the first of several
>> proposed steps towards those goals. The aim of this patch is two fold;
>>
>> 1) Revising the reference counting system so that we can eliminate
>> reference uma zones and the significant uma_find_refcnt() costs in some
>> workloads. This is done by making all mbufs reference counted and using
>> the owning mbuf's ref for the ext_ref. In this model we never reference
>> data, we only reference other mbufs owning the data.
>>
>> 2) Improve allocation and free performance by reducing the special cases
>> in the format and using inlines when appropriate. In particular, the
>> simplification of the m_ext structure yields less code and confusion for
>> dealing with external storage on free. The ctor/dtor mbuf routines are no
>> longer used. A zone pointer and length was added to struct mbuf to
>> simplify free and size calculations.
>>
>> A number of routines were made much, much simpler by the addition of a
>> 16bit size field. Previously we dependend on calculating the size by
>> figuring out if it was an ext, pkthdr, or standard mbuf. Ultimately, this
>> patch moves us closer to having a size agnostic mbuf which we can use to
>> experiment with different allocation sizes or even backending to malloc for
>> dynamically sized mbufs.
>>
>> I would appreciate testing feedback from varied workloads to make sure
>> there are no bugs before I go forward with this. I have tested only host
>> oriented networking with a few drivers. It is not anticipated that there
>> will be any significant incompatibilities introduced with this round but
>> there is always that possibility.
>>
>
>
> generally I like it.
>
> We discussed someof this before..
>
>
> It would be nice if you added more comments than you stripped out
> I personally think that some descriptions of what you are doing
> would be great in teh comments.
Yes, I can do that. I hadn't added as much because things are still a bit
in flux.
>
> ascii art too if needed...
>
> Also some diagrams in any form you want would be nice..
> all that about 1000 words and a picture is true.
I'll have to see about that. Any suggestions similar to visio for unix?
I guess graphviz can also do datastructure diagrams but I have not used it
for this before. I'll check it out but if you have other suggestions it's
welcome.
Thanks,
Jeff
>
>> Thanks,
>> Jeff
>> _______________________________________________
>> freebsd-net at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
More information about the freebsd-net
mailing list