From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Matteo Croce <mcroce@redhat.com>
Cc: Antoine Tenart <antoine.tenart@bootlin.com>,
netdev <netdev@vger.kernel.org>,
gregory.clement@bootlin.com, LKML <linux-kernel@vger.kernel.org>,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
Nadav Haklai <nadavh@marvell.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
miquel.raynal@bootlin.com, Stefan Chulski <stefanc@marvell.com>,
Marcin Wojtas <mw@semihalf.com>,
"David S . Miller" <davem@davemloft.net>,
Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH net-next 3/5] net: mvpp2: cls: Use RSS contexts to handle RSS tables
Date: Thu, 23 Apr 2020 18:00:03 +0100 [thread overview]
Message-ID: <20200423170003.GT25745@shell.armlinux.org.uk> (raw)
In-Reply-To: <CAGnkfhzsx_uEPkZQC-_-_NamTigD8J0WgcDioqMLSHVFa3V6GQ@mail.gmail.com>
On Tue, Apr 14, 2020 at 01:43:02AM +0200, Matteo Croce wrote:
> On Tue, Apr 14, 2020 at 1:21 AM Maxime Chevallier
> <maxime.chevallier@bootlin.com> wrote:
> >
> > The PPv2 controller has 8 RSS tables that are shared across all ports on
> > a given PPv2 instance. The previous implementation allocated one table
> > per port, leaving others unused.
> >
> > By using RSS contexts, we can make use of multiple RSS tables per
> > port, one being the default table (always id 0), the other ones being
> > used as destinations for flow steering, in the same way as rx rings.
> >
> > This commit introduces RSS contexts management in the PPv2 driver. We
> > always reserve one table per port, allocated when the port is probed.
> >
> > The global table list is stored in the struct mvpp2, as it's a global
> > resource. Each port then maintains a list of indices in that global
> > table, that way each port can have it's own numbering scheme starting
> > from 0.
> >
> > One limitation that seems unavoidable is that the hashing parameters are
> > shared across all RSS contexts for a given port. Hashing parameters for
> > ctx 0 will be applied to all contexts.
> >
> > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
>
> Hi all,
>
> I noticed that enabling rxhash blocks the RX on my Macchiatobin. It
> works fine with the 10G ports (the RX rate goes 4x up) but it
> completely kills the gigabit interface.
>
> # 10G port
> root@macchiatobin:~# iperf3 -c 192.168.0.2
> Connecting to host 192.168.0.2, port 5201
> [ 5] local 192.168.0.1 port 42394 connected to 192.168.0.2 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 941 MBytes 7.89 Gbits/sec 4030 250 KBytes
> [ 5] 1.00-2.00 sec 933 MBytes 7.82 Gbits/sec 4393 240 KBytes
> root@macchiatobin:~# ethtool -K eth0 rxhash on
> root@macchiatobin:~# iperf3 -c 192.168.0.2
> Connecting to host 192.168.0.2, port 5201
> [ 5] local 192.168.0.1 port 42398 connected to 192.168.0.2 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 860 MBytes 7.21 Gbits/sec 428 410 KBytes
> [ 5] 1.00-2.00 sec 859 MBytes 7.20 Gbits/sec 185 563 KBytes
>
> # gigabit port
> root@macchiatobin:~# iperf3 -c turbo
> Connecting to host turbo, port 5201
> [ 5] local 192.168.85.42 port 45144 connected to 192.168.85.6 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 113 MBytes 948 Mbits/sec 0 407 KBytes
> [ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec 0 428 KBytes
> root@macchiatobin:~# ethtool -K eth2 rxhash on
> root@macchiatobin:~# iperf3 -c turbo
> iperf3: error - unable to connect to server: Resource temporarily unavailable
>
> I've bisected and it seems that this commit causes the issue. I tried
> to revert it on nex-next as a second test, but the code has changed a
> lot much since, generating too much conflicts.
> Can you have a look into this?
This behaviour on eth2 is confirmed here on v5.6. Turning on rxhash
appears to prevent eth2 working.
Maxime, please look into this regression, thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 10.2Mbps down 587kbps up
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Matteo Croce <mcroce@redhat.com>
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>,
"David S . Miller" <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Antoine Tenart <antoine.tenart@bootlin.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
gregory.clement@bootlin.com, miquel.raynal@bootlin.com,
Nadav Haklai <nadavh@marvell.com>,
Stefan Chulski <stefanc@marvell.com>,
Marcin Wojtas <mw@semihalf.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH net-next 3/5] net: mvpp2: cls: Use RSS contexts to handle RSS tables
Date: Thu, 23 Apr 2020 18:00:03 +0100 [thread overview]
Message-ID: <20200423170003.GT25745@shell.armlinux.org.uk> (raw)
In-Reply-To: <CAGnkfhzsx_uEPkZQC-_-_NamTigD8J0WgcDioqMLSHVFa3V6GQ@mail.gmail.com>
On Tue, Apr 14, 2020 at 01:43:02AM +0200, Matteo Croce wrote:
> On Tue, Apr 14, 2020 at 1:21 AM Maxime Chevallier
> <maxime.chevallier@bootlin.com> wrote:
> >
> > The PPv2 controller has 8 RSS tables that are shared across all ports on
> > a given PPv2 instance. The previous implementation allocated one table
> > per port, leaving others unused.
> >
> > By using RSS contexts, we can make use of multiple RSS tables per
> > port, one being the default table (always id 0), the other ones being
> > used as destinations for flow steering, in the same way as rx rings.
> >
> > This commit introduces RSS contexts management in the PPv2 driver. We
> > always reserve one table per port, allocated when the port is probed.
> >
> > The global table list is stored in the struct mvpp2, as it's a global
> > resource. Each port then maintains a list of indices in that global
> > table, that way each port can have it's own numbering scheme starting
> > from 0.
> >
> > One limitation that seems unavoidable is that the hashing parameters are
> > shared across all RSS contexts for a given port. Hashing parameters for
> > ctx 0 will be applied to all contexts.
> >
> > Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
>
> Hi all,
>
> I noticed that enabling rxhash blocks the RX on my Macchiatobin. It
> works fine with the 10G ports (the RX rate goes 4x up) but it
> completely kills the gigabit interface.
>
> # 10G port
> root@macchiatobin:~# iperf3 -c 192.168.0.2
> Connecting to host 192.168.0.2, port 5201
> [ 5] local 192.168.0.1 port 42394 connected to 192.168.0.2 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 941 MBytes 7.89 Gbits/sec 4030 250 KBytes
> [ 5] 1.00-2.00 sec 933 MBytes 7.82 Gbits/sec 4393 240 KBytes
> root@macchiatobin:~# ethtool -K eth0 rxhash on
> root@macchiatobin:~# iperf3 -c 192.168.0.2
> Connecting to host 192.168.0.2, port 5201
> [ 5] local 192.168.0.1 port 42398 connected to 192.168.0.2 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 860 MBytes 7.21 Gbits/sec 428 410 KBytes
> [ 5] 1.00-2.00 sec 859 MBytes 7.20 Gbits/sec 185 563 KBytes
>
> # gigabit port
> root@macchiatobin:~# iperf3 -c turbo
> Connecting to host turbo, port 5201
> [ 5] local 192.168.85.42 port 45144 connected to 192.168.85.6 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 113 MBytes 948 Mbits/sec 0 407 KBytes
> [ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec 0 428 KBytes
> root@macchiatobin:~# ethtool -K eth2 rxhash on
> root@macchiatobin:~# iperf3 -c turbo
> iperf3: error - unable to connect to server: Resource temporarily unavailable
>
> I've bisected and it seems that this commit causes the issue. I tried
> to revert it on nex-next as a second test, but the code has changed a
> lot much since, generating too much conflicts.
> Can you have a look into this?
This behaviour on eth2 is confirmed here on v5.6. Turning on rxhash
appears to prevent eth2 working.
Maxime, please look into this regression, thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 10.2Mbps down 587kbps up
next prev parent reply other threads:[~2020-04-23 17:02 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-24 10:05 [PATCH net-next 0/5] net: mvpp2: Classifier updates, RSS Maxime Chevallier
2019-05-24 10:05 ` Maxime Chevallier
2019-05-24 10:05 ` [PATCH net-next 1/5] net: mvpp2: cls: Use the correct number of rules in various places Maxime Chevallier
2019-05-24 10:05 ` Maxime Chevallier
2019-05-24 10:05 ` [PATCH net-next 2/5] net: mvpp2: cls: Bypass C2 internals FIFOs at init Maxime Chevallier
2019-05-24 10:05 ` Maxime Chevallier
2019-05-24 10:05 ` [PATCH net-next 3/5] net: mvpp2: cls: Use RSS contexts to handle RSS tables Maxime Chevallier
2019-05-24 10:05 ` Maxime Chevallier
2020-04-13 23:43 ` Matteo Croce
2020-04-13 23:43 ` Matteo Croce
2020-04-23 17:00 ` Russell King - ARM Linux admin [this message]
2020-04-23 17:00 ` Russell King - ARM Linux admin
2020-05-09 0:12 ` Matteo Croce
2020-05-09 0:12 ` Matteo Croce
2020-05-09 11:15 ` [EXT] " Stefan Chulski
2020-05-09 11:15 ` Stefan Chulski
2020-05-09 11:45 ` Russell King - ARM Linux admin
2020-05-09 11:45 ` Russell King - ARM Linux admin
2020-05-09 12:16 ` Thomas Petazzoni
2020-05-09 12:16 ` Thomas Petazzoni
2020-05-09 12:48 ` Russell King - ARM Linux admin
2020-05-09 12:48 ` Russell King - ARM Linux admin
2020-05-09 13:10 ` Thomas Petazzoni
2020-05-09 13:10 ` Thomas Petazzoni
2020-05-09 13:14 ` Matteo Croce
2020-05-09 13:14 ` Matteo Croce
2020-05-09 13:51 ` Russell King - ARM Linux admin
2020-05-09 13:51 ` Russell King - ARM Linux admin
2020-05-09 14:48 ` Russell King - ARM Linux admin
2020-05-09 14:48 ` Russell King - ARM Linux admin
2020-05-09 15:31 ` Matteo Croce
2020-05-09 15:31 ` Matteo Croce
2020-05-09 19:52 ` Russell King - ARM Linux admin
2020-05-09 19:52 ` Russell King - ARM Linux admin
2020-05-09 20:20 ` Russell King - ARM Linux admin
2020-05-09 20:20 ` Russell King - ARM Linux admin
2020-05-19 9:53 ` Russell King - ARM Linux admin
2020-05-19 9:53 ` Russell King - ARM Linux admin
2020-05-19 10:05 ` Matteo Croce
2020-05-19 10:05 ` Matteo Croce
2020-05-19 17:05 ` Matteo Croce
2020-05-19 17:05 ` Matteo Croce
2020-05-20 11:10 ` Russell King - ARM Linux admin
2020-05-20 11:10 ` Russell King - ARM Linux admin
2020-05-20 11:16 ` Matteo Croce
2020-05-20 11:16 ` Matteo Croce
2020-05-20 11:18 ` Russell King - ARM Linux admin
2020-05-20 11:18 ` Russell King - ARM Linux admin
2020-05-09 12:16 ` Matteo Croce
2020-05-09 12:16 ` Matteo Croce
2020-05-09 12:31 ` Stefan Chulski
2020-05-09 12:31 ` Stefan Chulski
2020-05-09 13:25 ` Russell King - ARM Linux admin
2020-05-09 13:25 ` Russell King - ARM Linux admin
2019-05-24 10:05 ` [PATCH net-next 4/5] net: mvpp2: cls: Extract the RSS context when parsing the ethtool rule Maxime Chevallier
2019-05-24 10:05 ` Maxime Chevallier
2019-05-24 10:05 ` [PATCH net-next 5/5] net: mvpp2: cls: Support steering to RSS contexts Maxime Chevallier
2019-05-24 10:05 ` Maxime Chevallier
2019-05-25 23:38 ` [PATCH net-next 0/5] net: mvpp2: Classifier updates, RSS David Miller
2019-05-25 23:38 ` David Miller
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=20200423170003.GT25745@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=antoine.tenart@bootlin.com \
--cc=davem@davemloft.net \
--cc=gregory.clement@bootlin.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.chevallier@bootlin.com \
--cc=mcroce@redhat.com \
--cc=miquel.raynal@bootlin.com \
--cc=mw@semihalf.com \
--cc=nadavh@marvell.com \
--cc=netdev@vger.kernel.org \
--cc=stefanc@marvell.com \
--cc=thomas.petazzoni@bootlin.com \
/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.