DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] net/ixgbe: fix probability of obtaining mailbox lock failure
@ 2021-08-31  8:40 Qiming Chen
  2021-09-06  1:48 ` Wang, Haiyue
  2021-09-06  2:22 ` [dpdk-dev] [PATCH v2] " Qiming Chen
  0 siblings, 2 replies; 8+ messages in thread
From: Qiming Chen @ 2021-08-31  8:40 UTC (permalink / raw)
  To: dev; +Cc: haiyue.wang, Qiming Chen, stable

Ifconfig pf port up/down, after several times, the dpdk vf driver may fail
to obtain the mailbox lock, resulting in configuration failure and
functional failure. In order to increase the reliability of mailbox
communication, the patch uses a trial strategy.

Fixes: abf7275bbaa2 ("ixgbe: move to drivers/net/")
Cc: stable@dpdk.org

Signed-off-by: Qiming Chen <chenqiming_huawei@163.com>
---
 drivers/net/ixgbe/base/ixgbe_mbx.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_mbx.c b/drivers/net/ixgbe/base/ixgbe_mbx.c
index 4dddff2c58..5a14fcc7b4 100644
--- a/drivers/net/ixgbe/base/ixgbe_mbx.c
+++ b/drivers/net/ixgbe/base/ixgbe_mbx.c
@@ -370,15 +370,23 @@ STATIC s32 ixgbe_check_for_rst_vf(struct ixgbe_hw *hw, u16 mbx_id)
 STATIC s32 ixgbe_obtain_mbx_lock_vf(struct ixgbe_hw *hw)
 {
 	s32 ret_val = IXGBE_ERR_MBX;
+	s32 timeout = hw->mbx.timeout;
+	s32 usec = hw->mbx.usec_delay;
 
 	DEBUGFUNC("ixgbe_obtain_mbx_lock_vf");
 
-	/* Take ownership of the buffer */
-	IXGBE_WRITE_REG(hw, IXGBE_VFMAILBOX, IXGBE_VFMAILBOX_VFU);
+	do {
+		/* Take ownership of the buffer */
+		IXGBE_WRITE_REG(hw, IXGBE_VFMAILBOX, IXGBE_VFMAILBOX_VFU);
 
-	/* reserve mailbox for vf use */
-	if (ixgbe_read_v2p_mailbox(hw) & IXGBE_VFMAILBOX_VFU)
-		ret_val = IXGBE_SUCCESS;
+		/* reserve mailbox for vf use */
+		if (ixgbe_read_v2p_mailbox(hw) & IXGBE_VFMAILBOX_VFU) {
+			ret_val = IXGBE_SUCCESS;
+			break;
+		}
+
+		usec_delay(usec);
+	} while (timeout--);
 
 	return ret_val;
 }
-- 
2.30.1.windows.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-09-09  3:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-31  8:40 [dpdk-dev] [PATCH] net/ixgbe: fix probability of obtaining mailbox lock failure Qiming Chen
2021-09-06  1:48 ` Wang, Haiyue
2021-09-06  2:22 ` [dpdk-dev] [PATCH v2] " Qiming Chen
2021-09-08  3:33   ` Wang, Haiyue
2021-09-09  1:56     ` Qiming Chen
2021-09-09  2:13       ` Wang, Haiyue
2021-09-09  2:55       ` Wang, Haiyue
2021-09-09  3:34         ` Qiming Chen

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).