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@