Message ID | 20230331124959.40468-1-nbd@nbd.name (mailing list archive) |
---|---|
State | Accepted |
Commit | e669ce46740a9815953bb4452a6bc5a7fdc21a50 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: ethernet: mtk_eth_soc: fix remaining throughput regression | expand |
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Fri, 31 Mar 2023 14:49:59 +0200 you wrote: > 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. > > [...] Here is the summary with links: - [net] net: ethernet: mtk_eth_soc: fix remaining throughput regression https://git.kernel.org/netdev/net/c/e669ce46740a You are awesome, thank you!
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index 282f9435d5ff..e14050e17862 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -753,6 +753,7 @@ static void mtk_mac_link_up(struct phylink_config *config, MAC_MCR_FORCE_RX_FC); /* Configure speed */ + mac->speed = speed; switch (speed) { case SPEED_2500: case SPEED_1000: @@ -3235,6 +3236,9 @@ static int mtk_device_event(struct notifier_block *n, unsigned long event, void 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;