Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
* [net PATCH] octeontx2-af: Do NIX_RX_SW_SYNC twice
@ 2021-07-25 13:24 Sunil Goutham
2021-07-27 11:00 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 2+ messages in thread
From: Sunil Goutham @ 2021-07-25 13:24 UTC (permalink / raw)
To: netdev, davem, kuba; +Cc: Sunil Goutham
NIX_RX_SW_SYNC ensures all existing transactions are finished and
pkts are written to LLC/DRAM, queues should be teared down after
successful SW_SYNC. Due to a HW errata, in some rare scenarios
an existing transaction might end after SW_SYNC operation. To
ensure operation is fully done, do the SW_SYNC twice.
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
---
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
index 3006766..4bfbbdf 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
@@ -196,11 +196,22 @@ static void nix_rx_sync(struct rvu *rvu, int blkaddr)
{
int err;
- /*Sync all in flight RX packets to LLC/DRAM */
+ /* Sync all in flight RX packets to LLC/DRAM */
rvu_write64(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0));
err = rvu_poll_reg(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0), true);
if (err)
- dev_err(rvu->dev, "NIX RX software sync failed\n");
+ dev_err(rvu->dev, "SYNC1: NIX RX software sync failed\n");
+
+ /* SW_SYNC ensures all existing transactions are finished and pkts
+ * are written to LLC/DRAM, queues should be teared down after
+ * successful SW_SYNC. Due to a HW errata, in some rare scenarios
+ * an existing transaction might end after SW_SYNC operation. To
+ * ensure operation is fully done, do the SW_SYNC twice.
+ */
+ rvu_write64(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0));
+ err = rvu_poll_reg(rvu, blkaddr, NIX_AF_RX_SW_SYNC, BIT_ULL(0), true);
+ if (err)
+ dev_err(rvu->dev, "SYNC2: NIX RX software sync failed\n");
}
static bool is_valid_txschq(struct rvu *rvu, int blkaddr,
--
2.7.4
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [net PATCH] octeontx2-af: Do NIX_RX_SW_SYNC twice
2021-07-25 13:24 [net PATCH] octeontx2-af: Do NIX_RX_SW_SYNC twice Sunil Goutham
@ 2021-07-27 11:00 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-07-27 11:00 UTC (permalink / raw)
To: Sunil Goutham; +Cc: netdev, davem, kuba
Hello:
This patch was applied to netdev/net.git (refs/heads/master):
On Sun, 25 Jul 2021 18:54:52 +0530 you wrote:
> NIX_RX_SW_SYNC ensures all existing transactions are finished and
> pkts are written to LLC/DRAM, queues should be teared down after
> successful SW_SYNC. Due to a HW errata, in some rare scenarios
> an existing transaction might end after SW_SYNC operation. To
> ensure operation is fully done, do the SW_SYNC twice.
>
> Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
>
> [...]
Here is the summary with links:
- [net] octeontx2-af: Do NIX_RX_SW_SYNC twice
https://git.kernel.org/netdev/net/c/fcef709c2c4b
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-07-27 11:00 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-25 13:24 [net PATCH] octeontx2-af: Do NIX_RX_SW_SYNC twice Sunil Goutham
2021-07-27 11:00 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).