Thread (10 messages) 10 messages, 3 authors, 2018-01-13

Re: [PATCH 1/2] net/ixgbe: fix mailbox interrupt handler

From: Dai, Wei <hidden>
Date: 2018-01-12 02:29:33

-----Original Message-----
From: Zhang, Qi Z
Sent: Thursday, January 11, 2018 4:08 PM
To: Dai, Wei <redacted>; Lu, Wenzhuo <redacted>
Cc: dev@dpdk.org; Wang, Liang-min <redacted>;
stable@dpdk.org
Subject: RE: [PATCH 1/2] net/ixgbe: fix mailbox interrupt handler


quoted
-----Original Message-----
From: Dai, Wei
Sent: Thursday, December 28, 2017 12:39 PM
To: Zhang, Qi Z <redacted>; Lu, Wenzhuo
[off-list ref]
Cc: dev@dpdk.org; Wang, Liang-min <redacted>;
stable@dpdk.org
Subject: RE: [PATCH 1/2] net/ixgbe: fix mailbox interrupt handler

According to step 7 & 8 in Table 7-74 PF-to-VF Messaging Flow in 82599
datasheet, The calling of ixgbe_read_mbx( ) can be replaced by
following lines to avoid touching ->mbx.v2p_mailbox,
IXGBE_WRITE_REG(hw, IXGBE_VFMAILBOX, IXGBE_VFMAILBOX_ACK);
Thanks for the suggestion.

I think the patch try to keep things unchanged when a PF reset happen, but it
is not going to cover the case that PF reset interrupt and a foreground VF to
PF request happen simultaneously which is an knowing issue Your suggestion
may help on that, but it is not a complete fix. I think it will be better to have
a separate patch that focus on it.
Agree with you.
Regards
Qi
quoted
quoted
-----Original Message-----
From: Zhang, Qi Z
Sent: Thursday, December 28, 2017 4:22 AM
To: Lu, Wenzhuo <redacted>
Cc: dev@dpdk.org; Dai, Wei <redacted>; Wang, Liang-min
[off-list ref]; Zhang, Qi Z [off-list ref];
stable@dpdk.org
Subject: [PATCH 1/2] net/ixgbe: fix mailbox interrupt handler

Mailbox interrupt handler only take care of PF reset notification,
for other message ixgbe_read_mbx should not be called since it get
chance to break the foreground VF to PF communication.
This can be simply repeated by
testpmd>rx_vlan rm all 0

Fixes: 77234603fba0 ("net/ixgbe: support VF mailbox interrupt for
link
up/down")
Cc: stable@dpdk.org

Signed-off-by: Qi Zhang <redacted>
Acked-by: Wei Dai <redacted>
quoted
quoted
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
b/drivers/net/ixgbe/ixgbe_ethdev.c
index ff19a56..02121f4 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -8165,13 +8165,17 @@ static void ixgbevf_mbx_process(struct
rte_eth_dev *dev)
 	struct ixgbe_hw *hw =
IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	u32 in_msg = 0;

-	if (ixgbe_read_mbx(hw, &in_msg, 1, 0))
-		return;
+	/* peek the message first */
+	in_msg = IXGBE_READ_REG(hw, IXGBE_VFMBMEM);

 	/* PF reset VF event */
-	if (in_msg == IXGBE_PF_CONTROL_MSG)
+	if (in_msg == IXGBE_PF_CONTROL_MSG) {
+		/* dummy mbx read to ack pf */
+		if (ixgbe_read_mbx(hw, &in_msg, 1, 0))
+			return;
 		_rte_eth_dev_callback_process(dev,
RTE_ETH_EVENT_INTR_RESET,
 					      NULL, NULL);
+	}
 }

 static int
--
2.7.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help