]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerJakub Kicinski <kuba@kernel.org>
Fri, 30 Jan 2026 02:36:07 +0000 (18:36 -0800)
commit70e9a5760abfb6338d63994d4de6b0778ec795d6
treeae91194329ee9259040dd30ec2ee0ca7b1a88f51
parent7b85c77585409f76609c817b760db60f3bf8fd33
octeontx2-af: Workaround SQM/PSE stalls by disabling sticky

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>
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c