CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2016/10/26 21:06:53

Modified files:
        sys/dev/pci    : if_em.c if_ix.c if_em.h 

Log message:
tell ix and em to use 2k+ETHER_ALIGN clusters for rx on all archs.

this means that the ethernet header and therefore its payload will
be aligned correctly for the stack. without this em and ix are
sufferring a 30 to 40 percent hit in forwarding performance because
the ethernet stack expects to be able to prepend 8 bytes for an
ethernet header so it can gaurantee its alignment. because em and
ix only had 6 bytes where the ethernet header was, it always prepends
an mbuf which turns out to be expensive. this way the prepend will
be cheap because the 8 byte space will exist.

2k+ETHER_ALIGN clusters will end up using the newly created mcl2k2
pool.

the regression was isolated and the fix tested by hrvoje popovski.
ok mikeb@

Reply via email to