[openwrt/openwrt] bcm53xx: revert bgmac back to the old limited max frame size

LEDE Commits lede-commits at lists.infradead.org
Fri Jul 8 04:03:19 PDT 2022


rmilecki pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/027f7b18b9a738abbcae925367a1f653385bebe3

commit 027f7b18b9a738abbcae925367a1f653385bebe3
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Fri Jun 10 14:02:19 2022 +0200

    bcm53xx: revert bgmac back to the old limited max frame size
    
    Bumping max frame size has significantly affected network performance.
    It was done by upstream commit that first appeared in the 5.7 release.
    
    This change bumps NAT masquarade speed from 196 Mb/s to 383 Mb/s for the
    BCM4708 SoC.
    
    Ref: f55f1dbaad33 ("bcm53xx: switch to the kernel 5.10")
    Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
    (cherry picked from commit 230c9da963aad9e1a2f8f128c30067ccad2efef8)
---
 ...e-max-frame-size-to-support-just-MTU-1500.patch | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/target/linux/bcm53xx/patches-5.10/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch b/target/linux/bcm53xx/patches-5.10/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch
new file mode 100644
index 0000000000..2c2eb07b82
--- /dev/null
+++ b/target/linux/bcm53xx/patches-5.10/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch
@@ -0,0 +1,33 @@
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal at milecki.pl>
+Date: Fri, 10 Jun 2022 13:10:47 +0200
+Subject: [PATCH] bgmac: reduce max frame size to support just MTU 1500
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+bgmac allocates new replacement buffer before handling each received
+frame. Allocating & DMA-preparing 9724 B each time consumes a lot of CPU
+time. Ideally bgmac should just respect currently set MTU but it isn't
+the case right now. For now just revert back to the old limited frame
+size.
+
+This change bumps NAT masquarade speed by ~95%.
+
+Ref: 8c7da63978f1 ("bgmac: configure MTU and add support for frames beyond 8192 byte size")
+Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
+---
+ drivers/net/ethernet/broadcom/bgmac.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bgmac.h
++++ b/drivers/net/ethernet/broadcom/bgmac.h
+@@ -366,8 +366,7 @@
+ #define BGMAC_RX_FRAME_OFFSET			30		/* There are 2 unused bytes between header and real data */
+ #define BGMAC_RX_BUF_OFFSET			(NET_SKB_PAD + NET_IP_ALIGN - \
+ 						 BGMAC_RX_FRAME_OFFSET)
+-/* Jumbo frame size with FCS */
+-#define BGMAC_RX_MAX_FRAME_SIZE			9724
++#define BGMAC_RX_MAX_FRAME_SIZE			1536
+ #define BGMAC_RX_BUF_SIZE			(BGMAC_RX_FRAME_OFFSET + BGMAC_RX_MAX_FRAME_SIZE)
+ #define BGMAC_RX_ALLOC_SIZE			(SKB_DATA_ALIGN(BGMAC_RX_BUF_SIZE + BGMAC_RX_BUF_OFFSET) + \
+ 						 SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))




More information about the lede-commits mailing list