CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2020/06/24 22:37:30
Modified files: sys/dev/pci : if_ixl.c files.pci Log message: use intrmap to set up multiple queues across multiple cpus. ixl(4) is only enabled on amd64 and sparc64, and both of them now support pci_intr_establish_cpu(), so it is safe to apply this. a few things to note: - the chip only supports a power of 2 number of queues, (ie, 1, 2, 4, 8, etc), so this also tests the INTRMAP_POWEROF2 flag to intrmap_create. i tested this on a box with 6 cpus and it did the right thing. - the chip can support a lot of vectors, but we're limiting it to 8 for now. - rss with toeplitz is not implemented yet, so all rxed packets end up on the 0th queue for now. jmatthew@ had done most of the work already, and christiano haesbaert provided some hints to motivate me to work on this bit of it. tested by jmatthew@ on sparc64 ok jmatthew@