CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2015/02/18 16:58:35
Modified files: sys/dev/pci : if_myx.c if_myxreg.h Log message: myri employees and their drivers for linux and solaris have repeatedly told me that if you're going to rx into buffers greater than 4k in size, they have to be aligned to a 4k boundary. the mru of this chip is 9k, but ive been using the 12k mcl pool to provide the alignment. however, if we move to putting 8 items on a pool page there'll be enough slack space in the mcl12k pool pages to allow item colouring, which in turn will break the chip requirement above. in practice the chips i have seem to work fine with unaligned buffers, but i dont want to risk breaking early revision chips. this moves myx to using a private pool for allocating clusters for the big rx ring. the item size is 9k, but we specify a 4k alignment so every item we get out of it will be correct for the chip.