]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
octeontx2-af: Workaround SQM/PSE stalls by disabling sticky
authorGeetha sowjanya <gakula@marvell.com>
Tue, 27 Jan 2026 12:51:47 +0000 (18:21 +0530)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:20:31 +0000 (07:20 -0500)
commitb7eba260a34e854e2487b8363c11976f082df00d
tree42aa5855b934fd4b5446ebbe88ae0e948493ee4a
parent52d41f1d152f77e5ec72971c9c176b173dcbc4a0
octeontx2-af: Workaround SQM/PSE stalls by disabling sticky

[ Upstream commit 70e9a5760abfb6338d63994d4de6b0778ec795d6 ]

NIX SQ manager sticky mode is known to cause stalls when multiple SQs
share an SMQ and transmit concurrently. Additionally, PSE may deadlock
on transitions between sticky and non-sticky transmissions. There is
also a credit drop issue observed when certain condition clocks are
gated.

work around these hardware errata by:
- Disabling SQM sticky operation:
  - Clear TM6 (bit 15)
  - Clear TM11 (bit 14)
- Disabling sticky → non-sticky transition path that can deadlock PSE:
  - Clear TM5 (bit 23)
- Preventing credit drops by keeping the control-flow clock enabled:
  - Set TM9 (bit 21)

These changes are applied via NIX_AF_SQM_DBG_CTL_STATUS. With this
configuration the SQM/PSE maintain forward progress under load without
credit loss, at the cost of disabling sticky optimizations.

Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260127125147.1642-1-gakula@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c