bzero & bcopy alignment

Luigi Rizzo rizzo at icir.org
Sun Jan 21 22:00:25 UTC 2007


On Sun, Jan 21, 2007 at 10:41:09PM +0100, Ivan Voras wrote:
> Following recent discussion on alignment of bzero() and bcopy(), I've
> added some statistics collecting code to bzero() and bcopy() for
> practice (on a RELENG_6 box), and here are the cumulative results for
> argument alignment:

i think these profiles depend heavily on the hardware
and usage patterns.
e.g. some network drivers force you to aligned buffers
which results in misaligned payload requesting in
turn an unaligned bcopy. Not that one can help with this,
but i think that is also important to locate the locations
in the source where the poorly aligned (1-2, maybe
4 and 8 to some degree) ops occur.

cheers
luigi

> 128: 117190
> 64: 46495
> 32: 745178
> 16: 35313
> 8: 64580
> 4: 131045
> 2: 17969
> 1: 25099
> 
> This is somewhat early after bootup. First number is the alignment,
> second argument is the number of calls that passed a pointer having the
> alignment (e.g. there were 131045 instances of arguments which had data
> aligned to 4 bytes in either bcopy or bzero). After some compiling
> (start of a buildkernel), the data is:
> 
> 128: 341440
> 64: 66812
> 32: 1020807
> 16: 75574
> 8: 192189
> 4: 266904
> 2: 44975
> 1: 36411
> 
> If the data is correct, most data seem to be aligned fairly ok.
> 




More information about the freebsd-arch mailing list