From: Xiaoliang Yang <hidden> Date: 2021-12-01 01:35:16
This patch series configures five multiple queues for RX and TX on
imx8mp-evk, and uses Strict Priority as scheduling algorithms.
Make stmmac-tx-timeout configurable so that users can disable it in the
SP queue scheduling algorithm.
Xiaoliang Yang (2):
arm64: dts: imx8mp-evk: configure multiple queues on eqos
net: stmmac: make stmmac-tx-timeout configurable in Kconfig
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 41 +++++++++++++++++++
drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++++++
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 4 ++
3 files changed, 57 insertions(+)
--
2.17.1
From: Xiaoliang Yang <hidden> Date: 2021-12-01 01:35:18
Eqos ethernet support five queues on hardware, enable these queues and
configure the priority of each queue. Uses Strict Priority as scheduling
algorithms to ensure that the TSN function works.
Signed-off-by: Xiaoliang Yang <redacted>
---
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 41 ++++++++++++++++++++
1 file changed, 41 insertions(+)
From: Xiaoliang Yang <hidden> Date: 2021-12-01 01:35:21
stmmac_tx_timeout() function is called when a queue transmission
timeout. When Strict Priority is used as scheduling algorithms, the
lower priority queue may be blocked by a higher prority queue, which
will lead to tx timeout. We don't want to enable the tx watchdog timeout
in this case. Therefore, this patch make stmmac-tx-timeout configurable.
This patch set the CONFIG_STMMAC_TX_TIMEOUT by default when STMMAC_ETH
is selected. If anyone want to disable the tx watchdog timeout of
stmmac, he can unset the CONFIG_STMMAC_TX_TIMEOUT in menuconfig.
Signed-off-by: Xiaoliang Yang <redacted>
---
drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++++++++++++
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 ++++
2 files changed, 16 insertions(+)
Hi Xiaoliang,
After enable multiple queues in dts by default, eqos can't boot with NFS, NFS can't be mounted at the end. Can this reproduce at your side?
Best Regards,
Joakim Zhang
quoted hunk
-----Original Message-----
From: Xiaoliang Yang <redacted>
Sent: 2021年12月1日 9:47
To: davem@davemloft.net; netdev@vger.kernel.org;
linux-kernel@vger.kernel.org
Cc: kuba@kernel.org; Joakim Zhang <redacted>;
peppe.cavallaro@st.com; alexandre.torgue@foss.st.com;
joabreu@synopsys.com; Yannick Vignon [off-list ref];
boon.leong.ong@intel.com; Jose.Abreu@synopsys.com; mst@redhat.com;
Joao.Pinto@synopsys.com; Mingkai Hu [off-list ref]; Leo Li
[off-list ref]; Xiaoliang Yang [off-list ref]
Subject: [PATCH net-next 1/2] arm64: dts: imx8mp-evk: configure multiple
queues on eqos
Eqos ethernet support five queues on hardware, enable these queues and
configure the priority of each queue. Uses Strict Priority as scheduling
algorithms to ensure that the TSN function works.
Signed-off-by: Xiaoliang Yang <redacted>
---
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 41
++++++++++++++++++++
1 file changed, 41 insertions(+)
From: Jakub Kicinski <kuba@kernel.org> Date: 2021-12-01 02:45:34
On Wed, 1 Dec 2021 09:47:04 +0800 Xiaoliang Yang wrote:
Eqos ethernet support five queues on hardware, enable these queues and
configure the priority of each queue. Uses Strict Priority as scheduling
algorithms to ensure that the TSN function works.
stmmac_tx_timeout() function is called when a queue transmission
timeout. When Strict Priority is used as scheduling algorithms, the
lower priority queue may be blocked by a higher prority queue, which
will lead to tx timeout. We don't want to enable the tx watchdog timeout
in this case. Therefore, this patch make stmmac-tx-timeout configurable.
Your patch just disables the timeout handler, the WARN_ONCE() would
still fire. And shouldn't this be a runtime setting rather than a
compile-time setting?
quoted hunk
This patch set the CONFIG_STMMAC_TX_TIMEOUT by default when STMMAC_ETH
is selected. If anyone want to disable the tx watchdog timeout of
stmmac, he can unset the CONFIG_STMMAC_TX_TIMEOUT in menuconfig.
Signed-off-by: Xiaoliang Yang <redacted>
---
drivers/net/ethernet/stmicro/stmmac/Kconfig | 12 ++++++++++++
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 ++++
2 files changed, 16 insertions(+)
From: Xiaoliang Yang <hidden> Date: 2021-12-02 10:28:54
Hi Heiner,
On Dec 02, 2021 at 16:13:20, Heiner Kallweit wrote:
quoted
stmmac_tx_timeout() function is called when a queue transmission
timeout. When Strict Priority is used as scheduling algorithms, the
lower priority queue may be blocked by a higher prority queue, which
will lead to tx timeout. We don't want to enable the tx watchdog
timeout in this case. Therefore, this patch make stmmac-tx-timeout
configurable.
quoted
Your patch just disables the timeout handler, the WARN_ONCE() would still fire.
And shouldn't this be a runtime setting rather than a compile-time setting?
I tried to disable it in stmmac_tx_timeout() at runtime, the WARN_ONCE() will still be called from dev_watchdog() in sch_generic.c. It seems only when the timeout handler is NULL can disable the netdev watchdog up. So I did this in compile-time setting.
Regards,
Xiaoliang
Hi Heiner,
On Dec 02, 2021 at 16:13:20, Heiner Kallweit wrote:
quoted
quoted
stmmac_tx_timeout() function is called when a queue transmission
timeout. When Strict Priority is used as scheduling algorithms, the
lower priority queue may be blocked by a higher prority queue, which
will lead to tx timeout. We don't want to enable the tx watchdog
timeout in this case. Therefore, this patch make stmmac-tx-timeout
configurable.
quoted
Your patch just disables the timeout handler, the WARN_ONCE() would still fire.
And shouldn't this be a runtime setting rather than a compile-time setting?
I tried to disable it in stmmac_tx_timeout() at runtime, the WARN_ONCE() will still be called from dev_watchdog() in sch_generic.c. It seems only when the timeout handler is NULL can disable the netdev watchdog up. So I did this in compile-time setting.
The issue you're trying to fix is not driver-specific. Therefore the solution
should be added to net core.