[PATCH v2 00/11] staging: octeon: multi rx group (queue) support

Aaro Koskinen aaro.koskinen at iki.fi
Wed Aug 31 20:57:35 UTC 2016


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



More information about the devel mailing list