mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul Barker <paul.barker.ct@bp.renesas.com>
To: Sergey Shtylyov <s.shtylyov@omp.ru>,
	"David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH net-next v2 0/7] Improve GbEth performance on Renesas RZ/G2L and related SoCs
Date: Mon, 12 Feb 2024 11:52:09 +0000	[thread overview]
Message-ID: <99a883c8-ccf2-4e52-9c34-ead59cd84117@bp.renesas.com> (raw)
In-Reply-To: <29d9d3cb-4ac2-32e2-51b8-475d34216b07@omp.ru>


[-- Attachment #1.1.1: Type: text/plain, Size: 4040 bytes --]

On 10/02/2024 19:36, Sergey Shtylyov wrote:
> On 2/6/24 12:19 PM, Paul Barker wrote:
> 
>> This series aims to improve peformance of the GbEth IP in the Renesas
> 
>    You didn't fix the typo in "peformance"... :-/
> 
>> RZ/G2L SoC family and the RZ/G3S SoC, which use the ravb driver. Along
>> the way, we do some refactoring and ensure that napi_complete_done() is
>> used in accordance with the NAPI documentation for both GbEth and R-Car
>> code paths.
>>
>> Performance improvment mainly comes from enabling SW IRQ Coalescing for
> 
>    And in "improvment" too... :-/

I'll fix this and the above type in v3.

> 
>> all SoCs using the GbEth IP, and NAPI Threaded mode for single core SoCs
>> using the GbEth IP. These can be enabled/disabled at runtime via sysfs,
>> but our goal is to set sensible defaults which get good performance on
>> the affected SoCs.
>>
>> The performance impact of this series on iperf3 testing is as follows:
>>   * RZ/G2L Ethernet throughput is unchanged, but CPU usage drops:
>>       * Bidirectional and TCP RX: 6.5% less CPU usage
>>       * UDP RX: 10% less CPU usage
>>
>>   * RZ/G2UL and RZ/G3S Ethernet throughput is increased for all test
>>     cases except UDP TX, which suffers a slight loss:
>>       * TCP TX: 32% more throughput
>>       * TCP RX: 11% more throughput
>>       * UDP TX: 10% less throughput
>>       * UDP RX: 10183% more throughput - the previous throughput of
> 
>    So this is a real figure? I thought you forgot to erase 10... :-)

Yes, throughput went from 1.06Mbps to 109Mbps for the RZ/G2UL with these
changes.

Initial testing shows that goes up again to 485Mbps with the next patch
series I'm working on to reduce RX buffer sizes.

Biju's work on checksum offload also helps a lot with these numbers, I
can't take all the credit.

> 
>>         1.06Mbps is what prompted this work.
>>
>>   * RZ/G2N CPU usage and Ethernet throughput is unchanged (tested as a
>>     representative of the SoCs which use the R-Car based RAVB IP).
>>
>> This series depends on:
>>   * "net: ravb: Let IP-specific receive function to interrogate descriptors" v6
>>     https://lore.kernel.org/all/20240202084136.3426492-2-claudiu.beznea.uj@bp.renesas.com/
> 
>    This one has been merged now, so you can drop RFC...
> 
>> To get the results shown above, you'll also need:
>>   * "topology: Set capacity_freq_ref in all cases"
>>     https://lore.kernel.org/all/20240117190545.596057-1-vincent.guittot@linaro.org/
>>
>>   * "ravb: Add Rx checksum offload support" v4
>>     https://lore.kernel.org/all/20240203142559.130466-2-biju.das.jz@bp.renesas.com/
>>
>>   * "ravb: Add Tx checksum offload support" v4
>>     https://lore.kernel.org/all/20240203142559.130466-3-biju.das.jz@bp.renesas.com/
> 
>    These two have been merged too...
> 
>> Work in this area will continue, in particular we expect to improve
>> TCP/UDP RX performance further with future changes to RX buffer
>> handling.
>>
>> Changes v1->v2:
>>   * Marked as RFC as the series depends on unmerged patches.
>>   * Refactored R-Car code paths as well as GbEth code paths.
>>   * Updated references to the patches this series depends on.
>>
>> Paul Barker (7):
>>   net: ravb: Simplify poll & receive functions
> 
>    The below 3 commits fix issues in the GbEth code, so should
> be redone against net.git and posted separately from this series...
> 
>>   net: ravb: Count packets instead of descriptors in RX path
>>   net: ravb: Always process TX descriptor ring
>>   net: ravb: Always update error counters

I'll split out and re-submit these as bug fixes. "net: ravb: Count
packets instead of descriptors in RX path" will require a bit of rework
so it doesn't depend on the first patch of the series ("net: ravb:
Simplify poll & receive functions") so you'll probably want to re-review
when I send it.

Then I'll re-send the rest as a non-RFC series.

> 
> [...]
> 
> MBR, Sergey

Thanks for the review!
Paul

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3577 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

  reply	other threads:[~2024-02-12 11:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-06  9:19 Paul Barker
2024-02-06  9:19 ` [RFC PATCH net-next v2 1/7] net: ravb: Simplify poll & receive functions Paul Barker
2024-02-10 16:13   ` Sergey Shtylyov
2024-02-06  9:19 ` [RFC PATCH net-next v2 2/7] net: ravb: Count packets instead of descriptors in RX path Paul Barker
2024-02-10 16:32   ` Sergey Shtylyov
2024-02-06  9:19 ` [RFC PATCH net-next v2 3/7] net: ravb: Always process TX descriptor ring Paul Barker
2024-02-10 16:39   ` Sergey Shtylyov
2024-02-06  9:19 ` [RFC PATCH net-next v2 4/7] net: ravb: Always update error counters Paul Barker
2024-02-10 16:46   ` Sergey Shtylyov
2024-02-06  9:19 ` [RFC PATCH net-next v2 5/7] net: ravb: Align poll function with NAPI docs Paul Barker
2024-02-10 17:10   ` Sergey Shtylyov
2024-02-06  9:19 ` [RFC PATCH net-next v2 6/7] net: ravb: Enable SW IRQ Coalescing for GbEth Paul Barker
2024-02-10 18:42   ` Sergey Shtylyov
2024-02-12 11:45     ` Paul Barker
2024-02-12 20:40       ` Sergey Shtylyov
2024-02-14  9:29         ` Paul Barker
2024-02-06  9:19 ` [RFC PATCH net-next v2 7/7] net: ravb: Use NAPI threaded mode on 1-core CPUs with GbEth IP Paul Barker
2024-02-10 19:00   ` Sergey Shtylyov
2024-02-10 19:36 ` [RFC PATCH net-next v2 0/7] Improve GbEth performance on Renesas RZ/G2L and related SoCs Sergey Shtylyov
2024-02-12 11:52   ` Paul Barker [this message]
2024-02-12 20:53     ` Sergey Shtylyov
2024-02-13  9:38       ` Sergey Shtylyov
2024-02-14  9:17       ` Paul Barker

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=99a883c8-ccf2-4e52-9c34-ead59cd84117@bp.renesas.com \
    --to=paul.barker.ct@bp.renesas.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=s.shtylyov@omp.ru \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yoshihiro.shimoda.uh@renesas.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®