Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1472967

Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support

From Ed Swierk <eswierk@skyportsystems.com>
Newsgroups linux.kernel
Subject Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support
Date 2016-08-31 03:20 +0200
Message-ID <sc2m6-47N-9@gated-at.bofh.it> (permalink)
References <sbWgF-7T-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi Aaro,

On Tue, Aug 30, 2016 at 11:47 AM, Aaro Koskinen <aaro.koskinen@iki.fi> wrote:
> 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.

I applied the series to my 4.4.19 tree, which involved backporting a
bunch of other patches from master, most of them trivial.

When I test it on a Cavium Octeon 2 (CN6880) board, I get an immediate
crash (bus error) in the netif_receive_skb() call from cvm_oct_poll().
Replacing the rx_group argument to cvm_oct_poll() with int group, and
dereferencing rx_group->group in the caller (cvm_oct_napi_poll())
instead makes the crash disappear. Apparently there's some race in
dereferencing rx_group from within cvm_oct_poll().

With this workaround in place, I can send and receive on XAUI
interfaces, but don't see any performance improvement. I'm guessing I
need to set receive_group_order > 0. But any value between 1 and 4
seems to break rx altogether. When I ping another host I see both
request and response on the wire, and the interface counters increase,
but the response doesn't make it back to ping.

Is some other configuration needed to make use of multiple rx groups?

--Ed

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/9] staging: octeon: multi rx group (queue) support Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-30 20:50 +0200
  [PATCH 5/9] staging: octeon: create a struct for rx group specific data Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-30 20:50 +0200
  [PATCH 2/9] staging: octeon: use passed interrupt number in the handler Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-30 20:50 +0200
  [PATCH 1/9] staging: octeon: disable rx interrupts in oct_rx_shutdown Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-30 20:50 +0200
  [PATCH 7/9] staging: octeon: move group number into rx group data Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-30 21:00 +0200
  Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support Ed Swierk <eswierk@skyportsystems.com> - 2016-08-31 03:20 +0200
    Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-31 08:40 +0200
      Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support Ed Swierk <eswierk@skyportsystems.com> - 2016-08-31 18:20 +0200
        Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-31 23:30 +0200
          Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support Ed Swierk <eswierk@skyportsystems.com> - 2016-09-01 04:00 +0200
    Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support Aaro Koskinen <aaro.koskinen@iki.fi> - 2016-08-31 17:10 +0200

csiph-web