Date: Tue, 29 May 2007 09:20:53 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: Gleb Smirnoff <glebius@FreeBSD.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, Andre Oppermann <andre@FreeBSD.org>, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/mxge if_mxge.c Message-ID: <18012.10444.46382.757318@grasshopper.cs.duke.edu> In-Reply-To: <20070528112812.GO89017@FreeBSD.org> References: <200705251938.l4PJcWRY007635@repoman.freebsd.org> <20070525154540.A22931@grasshopper.cs.duke.edu> <46574DD2.7080200@freebsd.org> <20070528112812.GO89017@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
Gleb Smirnoff writes: > On Fri, May 25, 2007 at 10:57:54PM +0200, Andre Oppermann wrote: > A> Andrew Gallatin wrote: > A> > Andrew Gallatin [gallatin@FreeBSD.org] wrote: > A> >> gallatin 2007-05-25 19:38:32 UTC > A> >> > A> >> FreeBSD src repository > A> >> > A> >> Modified files: > A> >> sys/dev/mxge if_mxge.c Log: > A> >> - Use m_getcl() rather than m_getjcl() when we're allocating 2KB > A> >> clusters. This helps quite a bit on my low end machines (improves > A> >> performance by about 300Kpps when being blasted by a hardware > A> >> packet generator). > A> > BTW, thanks to bmilekic for reminding me of the packet zone. > A> > It would be nice if such a thing existed for the jumbo sized > A> > clusters :) > A> > A> Secondary zones are not perfectly integrated with UMA and there > A> are some nits that prevent doing just that for the moment. We're > A> working on it. It's not trivial though. I want to de-inline some > A> functions in mbuf.h to make backend changes transparent to consumers > A> of it. > > Just 1 penny: Andrews commit shows that packet zone shouldn't be deleted, > it really improves performance. It is not clear that it always improves performance. I think it may have at least a little to do with the platform (athlon64 rather than xeon), and the fact that I allocate my receive buffers in the interrupt thread, rather than having a separate thread to allocate them. Both scottl and kmacy have reported substantial gains from allocating clusters well in advance (in a taskq for cxbe, not sure what scottl did for em) and allocating the pkthdr mbufs after the interrupt comes in. I did not notice an improvement when I tried allocating pkhdrs late (and I never tried a taskq/thread to allocate buffers). Again, it might be the platform. I'll try more experiments when I get access to Xeons again.. Speaking of mbufs, Bosko pointed out that in revision 1.156 of kern/uipc_mbuf.c, code was added which clears M_EXT information at mb_free_ext() time. He was concerned that doing this at free time might be cache unfriendly, and that this clearing used to be done at ctor time. Drewhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?18012.10444.46382.757318>
