mbox series

[6.1.y,cip,v2,0/9] Backport ravb driver performance improvements

Message ID 20240827210609.12695-1-paul.barker.ct@bp.renesas.com (mailing list archive)
Headers show
Series Backport ravb driver performance improvements | expand

Message

Paul Barker Aug. 27, 2024, 9:06 p.m. UTC
This series includes the performance improvements present in Linux
v6.11-rc1 along with dependencies.

The patch commit messages have not been changed as part of this
backport, so they refer to performance achieved during testing with the
upstream kernel.

The performance improvement achieved by applying this backport series
on top of v6.1.101-cip25 is as follows, measured using iperf3:

  RZ/G2L:
    * Similar TX/RX bandwidth
    * 50% less CPU usage during TCP RX test
    * 21% less CPU usage during UDP RX test
  
  RZ/G2UL:
    * 6% increase in TCP TX bandwidth
    * 34% increase in TCP RX bandwidth
    * 500% increase in UDP RX bandwidth
    * 24% loss in UDP TX bandwidth
  
  RZ/G3S:
    * 38% increase in TCP TX bandwidth
    * 48% increase in TCP RX bandwidth
    * 481% increase in UDP RX bandwidth
    * 17% loss in UDP TX bandwidth
  
  RZ/Five:
    * 19% increase in TCP TX bandwidth
    * 225% increase in TCP RX bandwidth
    * >10,000% increase in UDP RX bandwidth
        (UDP RX bandwidth was <100kbps and unstable with v6.1.101-cip25
         so it's difficult to get an exact figure here)
    * 6% loss in UDP TX bandwidth

Small losses in UDP TX bandwidth are considered acceptable to achieve
the above improvements in other test cases. If UDP TX bandwidth must be
maximised for a particular use case, NAPI threaded mode can be disabled
at runtime via sysfs writes.

Changes v1->v2:
  * Added Geert's patch to ensure that PAGE_PAGE is enabled.
  * Added Pavel's Reviewed-by tag to patches 1-8.
  * Removed unnecessary whitespace in commit messages.

Geert Uytterhoeven (1):
  ravb: RAVB should select PAGE_POOL

Heiner Kallweit (1):
  net: add netdev_sw_irq_coalesce_default_on()

Paul Barker (7):
  net: ravb: Simplify poll & receive functions
  net: ravb: Align poll function with NAPI docs
  net: ravb: Refactor RX ring refill
  net: ravb: Refactor GbEth RX code path
  net: ravb: Enable SW IRQ Coalescing for GbEth
  net: ravb: Use NAPI threaded mode on 1-core CPUs with GbEth IP
  net: ravb: Allocate RX buffers via page pool

 drivers/net/ethernet/renesas/Kconfig     |   1 +
 drivers/net/ethernet/renesas/ravb.h      |  14 +-
 drivers/net/ethernet/renesas/ravb_main.c | 488 +++++++++++++----------
 include/linux/netdevice.h                |   1 +
 net/core/dev.c                           |  16 +
 5 files changed, 299 insertions(+), 221 deletions(-)

Comments

Pavel Machek Aug. 29, 2024, 10:11 a.m. UTC | #1
Hi!

> Small losses in UDP TX bandwidth are considered acceptable to achieve
> the above improvements in other test cases. If UDP TX bandwidth must be
> maximised for a particular use case, NAPI threaded mode can be disabled
> at runtime via sysfs writes.

> Changes v1->v2:
>   * Added Geert's patch to ensure that PAGE_PAGE is enabled.
>   * Added Pavel's Reviewed-by tag to patches 1-8.
>   * Removed unnecessary whitespace in commit messages.

Thank you. There were no comments last time, and it passes testing
now, so I applied the series.

I still don't believe this is complete fix, as I explained
before. System should work without major starvation issue with both
NAPI on and NAPI off.

Best regards,
								Pavel