forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bcm53xx: copy bgmac revert (performance fix) to 5.15
Ref: 230c9da ("bcm53xx: revert bgmac back to the old limited max frame size") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
- Loading branch information
Rafał Miłecki
committed
Jun 17, 2022
1 parent
9320516
commit d19c374
Showing
1 changed file
with
33 additions
and
0 deletions.
There are no files selected for viewing
33 changes: 33 additions & 0 deletions
33
...linux/bcm53xx/patches-5.15/700-bgmac-reduce-max-frame-size-to-support-just-MTU-1500.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@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@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 | ||
@@ -328,8 +328,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))) |