Date: Sat, 11 Apr 2009 15:56:31 -0400 From: Karim Fodil-Lemelin <kfl@xiplink.com> To: Robert Watson <rwatson@FreeBSD.org> Cc: freebsd-net@freebsd.org Subject: Re: m_tag, malloc vs uma Message-ID: <49E0F5EF.3030807@xiplink.com> In-Reply-To: <alpine.BSF.2.00.0904102057320.36143@fledge.watson.org> References: <49DF5F75.6080607@xiplink.com> <alpine.BSF.2.00.0904101950350.36143@fledge.watson.org> <49DF9EAD.1050609@xiplink.com> <alpine.BSF.2.00.0904102057320.36143@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Robert Watson wrote: > On Fri, 10 Apr 2009, Karim Fodil-Lemelin wrote: > >> Thank you for the answer, clear and concise. I asked the question >> because I had modified pf_get_mtag() to use uma directly in the hope >> that it would be faster then calling malloc. But since pf_mtag is >> 20bytes, malloc will end up using a fixed 32bytes zone and I >> shouldn't expect much speed gain from using something like (except >> some savings from not having to select the 32bytes zone): > > There is another small overhead, the critical section used to protect > the consistency of the per-CPU malloc type alloc and free counters, > but it's also very small. > > I think it would be desirable to make a change to more flexible m_tag > types for 8.0, but I'm not sure I have time to implement/test it. Is > this something you might be interested in working on? I'm thinking of > basically replacing the m_tag_free pointer with a pointer to a small > vector of operations, possibly something along these lines: > > struct m_tag_ops { > void (*m_tag_free)(struct m_tag *); > struct m_tag (*m_tag_copy)(struct m_tag *); > }; > > If the m_tag_ops pointer is NULL, we go with today's default > (requiring minimal change of existing consumers). I'm not sure if > there are any other function pointers we'd need at this point? Is the m_tag_copy an 'overloaded' function for the current m_tag_copy or something else? Now it could also be interesting to have another function pointer to overload m_tag_alloc to give more control over which zone the user wants its tags from (ex: pf_mtag ...). The interest is there not sure if the schedule will allow it but that depends if the new m_tag designs allows me to squeeze some performances in. Karim.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49E0F5EF.3030807>