Hi, This series implements multiple RX group support that should improve the networking performance on multi-core OCTEONs. Basically we register IRQ and NAPI for each group, and ask the HW to select the group for the incoming packets based on hash. Tested on EdgeRouter Lite with a simple forwarding test using two flows and 16 RX groups distributed between two cores - the routing throughput is roughly doubled. Also tested with EBH5600 (8 cores) and EBB6800 (16 cores) by sending and receiving traffic in both directions using SGMII interfaces. A. v2: - Fix build failure with CONFIG_NET_POLL_CONSOLE. - Disable the extended group tag mask bits on CN68XX. - Set up PKND for all interfaces. - Don't allow poll before RX init is completed. v1: http://marc.info/?t=147258299700005&r=1&w=2 Aaro Koskinen (11): staging: octeon: disable rx interrupts in oct_rx_shutdown staging: octeon: use passed interrupt number in the handler staging: octeon: pass the NAPI instance reference to irq handler staging: octeon: move common poll code into a separate function staging: octeon: create a struct for rx group specific data staging: octeon: move irq into rx group specific data staging: octeon: move group number into rx group data staging: octeon: support enabling multiple rx groups staging: octeon: enable taking multiple rx groups into use staging: octeon: set up pknd for all interfaces staging: octeon: prevent poll during rx init drivers/staging/octeon/ethernet-rx.c | 184 ++++++++++++++++++++----------- drivers/staging/octeon/ethernet.c | 64 +++++++++-- drivers/staging/octeon/octeon-ethernet.h | 2 +- 3 files changed, 174 insertions(+), 76 deletions(-) -- 2.9.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel