Date: Fri, 20 Nov 2009 00:39:19 -0600 From: Alan Cox <alc@cs.rice.edu> To: John Baldwin <jhb@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Robert Watson <rwatson@freebsd.org>, Jung-uk Kim <jkim@freebsd.org> Subject: Re: svn commit: r199498 - in head/sys: amd64/amd64 i386/i386 net Message-ID: <4B063997.2010900@cs.rice.edu> In-Reply-To: <200911191649.37198.jhb@freebsd.org> References: <200911182340.nAINeJ3W087652@svn.freebsd.org> <alpine.BSF.2.00.0911190819550.12162@fledge.watson.org> <200911191115.11088.jkim@FreeBSD.org> <200911191649.37198.jhb@freebsd.org>
index | next in thread | previous in thread | raw e-mail
John Baldwin wrote: > On Thursday 19 November 2009 11:15:01 am Jung-uk Kim wrote: > >> On Thursday 19 November 2009 03:26 am, Robert Watson wrote: >> >>> On Wed, 18 Nov 2009, Jung-uk Kim wrote: >>> >>>> - Change internal function bpf_jit_compile() to return allocated >>>> size of the generated binary and remove page size limitation for >>>> userland. - Use contigmalloc(9)/contigfree(9) instead of >>>> malloc(9)/free(9) to make sure the generated binary aligns >>>> properly and make it physically contiguous. >>>> >>> Is physical contiguity actually required here -- I would have >>> thought virtual contiguity and alignment would be sufficient, in >>> which case the normal trick is to allocate using malloc the size + >>> min-align + 1 and then fudge the pointer forward until it's >>> properly aligned. >>> >> I don't believe it is strictly necessary but I assumed it might have >> performance benefit for very big BPF programs although I have not >> measured it. Also, contigmalloc(9)/contigfree(9) is too obvious to >> ignore for this purpose. :-) >> > > Why would it have a performance benefit to have the pages be physically > contiguous? contigmalloc() is expensive and should really only be used if > you truly need contiguous memory. If you can get by with malloc(), just use > malloc(). > > If anything, there is a performance benefit from using malloc. Kernel memory allocated with malloc on amd64 is likely to be backed by superpages. This is not true of contigmalloc. Alanhome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B063997.2010900>
