Date: Mon, 2 Feb 2009 09:44:32 -1000 (HST) From: Jeff Roberson <jroberson@jroberson.net> To: Julian Elischer <julian@elischer.org> Cc: freebsd-net@freebsd.org Subject: Re: mbuf revision, testers/comments wanted. Message-ID: <20090202094307.O983@desktop> In-Reply-To: <4986A6F7.7080402@elischer.org> References: <20090131125100.N983@desktop> <4986A6F7.7080402@elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090202094307.O983>