All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Daney <ddaney@caviumnetworks.com>
To: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Ed Swierk <eswierk@skyportsystems.com>,
	driverdev-devel <devel@driverdev.osuosl.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/9] staging: octeon: multi rx group (queue) support
Date: Wed, 31 Aug 2016 09:10:02 -0700	[thread overview]
Message-ID: <57C7015A.2090509@caviumnetworks.com> (raw)
In-Reply-To: <20160831150655.GF14316@raspberrypi.musicnaut.iki.fi>

On 08/31/2016 08:06 AM, Aaro Koskinen wrote:
> Hi,
>
> On Tue, Aug 30, 2016 at 06:12:17PM -0700, Ed Swierk wrote:
>> 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.
>
> This happens only on CN68XX, and I found the root cause.
>
> I will send a new series later today.

Thanks,

cn68xx does have a slightly different SSO and interrupt implementation, 
so it will probably need some special case code to handle both styles of 
hardware.

David.

>
> A.
>

      reply	other threads:[~2016-08-31 16:10 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-30 18:47 [PATCH 0/9] staging: octeon: multi rx group (queue) support Aaro Koskinen
2016-08-30 18:47 ` [PATCH 1/9] staging: octeon: disable rx interrupts in oct_rx_shutdown Aaro Koskinen
2016-08-30 18:47 ` [PATCH 2/9] staging: octeon: use passed interrupt number in the handler Aaro Koskinen
2016-08-30 18:47 ` [PATCH 3/9] staging: octeon: pass the NAPI instance reference to irq handler Aaro Koskinen
2016-08-30 18:47 ` [PATCH 4/9] staging: octeon: move common poll code into a separate function Aaro Koskinen
2016-08-30 18:47 ` [PATCH 5/9] staging: octeon: create a struct for rx group specific data Aaro Koskinen
2016-08-30 18:47 ` [PATCH 6/9] staging: octeon: move irq into " Aaro Koskinen
2016-08-30 18:47 ` [PATCH 7/9] staging: octeon: move group number into rx group data Aaro Koskinen
2016-08-30 18:47 ` [PATCH 8/9] staging: octeon: support enabling multiple rx groups Aaro Koskinen
2016-08-30 18:47 ` [PATCH 9/9] staging: octeon: enable taking multiple rx groups into use Aaro Koskinen
2016-08-31  1:12 ` [PATCH 0/9] staging: octeon: multi rx group (queue) support Ed Swierk
2016-08-31  6:29   ` Aaro Koskinen
2016-08-31 16:20     ` Ed Swierk
2016-08-31 21:20       ` Aaro Koskinen
2016-09-01  1:52         ` Ed Swierk
2016-08-31 15:06   ` Aaro Koskinen
2016-08-31 16:10     ` David Daney [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57C7015A.2090509@caviumnetworks.com \
    --to=ddaney@caviumnetworks.com \
    --cc=aaro.koskinen@iki.fi \
    --cc=devel@driverdev.osuosl.org \
    --cc=eswierk@skyportsystems.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.