forked from Openwrt/openwrt
2ad898e091
Removed upstreamed: generic/backport-6.1/789-STABLE-01-net-dsa-mt7530-prevent-possible-incorrect-XTAL-frequ.patch [1] generic/backport-6.1/789-STABLE-02-net-dsa-mt7530-fix-link-local-frames-that-ingress-vl.patch [2] generic/backport-6.1/789-STABLE-03-net-dsa-mt7530-fix-handling-of-all-link-local-frames.patch [3] generic/pending-6.1/735-net-mediatek-mtk_eth_soc-release-MAC_MCR_FORCE_LINK-.patch [4] generic/pending-6.1/736-net-ethernet-mtk_eth_soc-fix-PPE-hanging-issue.patch [5] Manual adjusted the following patches: mediatek/patches-6.1/100-dts-update-mt7622-rfb1.patch 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=be4512b9ac6fc53e1ca8daccbda84f643215c547 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=f1fa919ea59655f73cb3972264e157b8831ba546 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=86c0c154a759f2af9612a04bdf29110f02dce956 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=6b62bad2da1b338f452a9380639fc9b093d75a25 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.83&id=f78807362828ad01db2a9ed005bf79501b620f27 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Wed, 29 Mar 2023 16:02:54 +0200
|
|
Subject: [PATCH] net: ethernet: mtk_eth_soc: fix remaining throughput
|
|
regression
|
|
|
|
Based on further tests, it seems that the QDMA shaper is not able to
|
|
perform shaping close to the MAC link rate without throughput loss.
|
|
This cannot be compensated by increasing the shaping rate, so it seems
|
|
to be an internal limit.
|
|
|
|
Fix the remaining throughput regression by detecting that condition and
|
|
limiting shaping to ports with lower link speed.
|
|
|
|
This patch intentionally ignores link speed gain from TRGMII, because
|
|
even on such links, shaping to 1000 Mbit/s incurs some throughput
|
|
degradation.
|
|
|
|
Fixes: f63959c7eec3 ("net: ethernet: mtk_eth_soc: implement multi-queue support for per-port queues")
|
|
Reported-by: Frank Wunderlich <frank-w@public-files.de>
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
@@ -766,6 +766,7 @@ static void mtk_mac_link_up(struct phyli
|
|
MAC_MCR_FORCE_RX_FC);
|
|
|
|
/* Configure speed */
|
|
+ mac->speed = speed;
|
|
switch (speed) {
|
|
case SPEED_2500:
|
|
case SPEED_1000:
|
|
@@ -3347,6 +3348,9 @@ found:
|
|
if (dp->index >= MTK_QDMA_NUM_QUEUES)
|
|
return NOTIFY_DONE;
|
|
|
|
+ if (mac->speed > 0 && mac->speed <= s.base.speed)
|
|
+ s.base.speed = 0;
|
|
+
|
|
mtk_set_queue_speed(eth, dp->index + 3, s.base.speed);
|
|
|
|
return NOTIFY_DONE;
|