svn commit: r199498 - in head/sys: amd64/amd64 i386/i386 net

John Baldwin jhb at freebsd.org
Thu Nov 19 21:55:33 UTC 2009


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().

-- 
John Baldwin


More information about the svn-src-all mailing list