Re: [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF
From: Dai, Wei <hidden>
Date: 2017-10-11 07:07:13
I look through from web browser and not find following mail from Jianwei Ma [off-list ref] Hope this can add his test result in the mail list to community.
-----Original Message----- From: Ma, Jianwei Sent: Tuesday, October 10, 2017 4:47 PM To: Dai, Wei <redacted>; Lu, Wenzhuo <redacted>; Ananyev, Konstantin [off-list ref]; Liang, Cunming [off-list ref] Cc: dev@dpdk.org; stable@dpdk.org Subject: RE: [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF Verified with l3fwd-power. It worked well with this patch plus http://dpdk.org/dev/patchwork/patch/29000/ " [dpdk-dev] net/ixgbe: fix Rx queue interrupt mapping in VF" -----Original Message----- From: Dai, Wei Sent: Tuesday, October 10, 2017 11:30 To: Lu, Wenzhuo <redacted>; Ananyev, Konstantin [off-list ref]; Liang, Cunming [off-list ref]; Ma, Jianwei [off-list ref] Cc: dev@dpdk.org; stable@dpdk.org Subject: RE: [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF Hi, Jianwei How about your test result ? Hi Wenzhuo Would you please review this patch ? Thanks a lot !quoted
-----Original Message----- From: Dai, Wei Sent: Thursday, September 28, 2017 10:29 AM To: Lu, Wenzhuo <redacted>; Ananyev, Konstantin [off-list ref]; Liang, Cunming [off-list ref]; Ma, Jianwei [off-list ref] Cc: dev@dpdk.org; Dai, Wei <redacted>; stable@dpdk.org Subject: [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF When a VF port is bound to VFIO-PIC, only miscellaneous interrupt is mapped to VFIO vector 0 in eth_ixgbevf_dev_init( ). In ixgbevf_dev_start(), if previous VFIO interrupt mapping set in eth_ixgbevf_dev_init( ) is not cleard, it will fail when calling rte_intr_enable( ) tries to map Rx queue interrupt to other VFIO vectors. This patch clears the VFIO interrupt mappings before setting both miscellaneous and Rx queue interrupt mappings again to avoidfailure.quoted
Fixes: 77234603fba0 ("net/ixgbe: support VF mailbox interrupt for link up/down") Cc: stable@dpdk.org Signed-off-by: Wei Dai <redacted>Tested-by: Jianwei Ma <redacted>quoted
--- drivers/net/ixgbe/ixgbe_ethdev.c | 9 +++++++++ 1 file changed, 9 insertions(+)diff --git a/drivers/net/ixgbe/ixgbe_ethdev.cb/drivers/net/ixgbe/ixgbe_ethdev.c index 9ca5cbc..f49c616 100644--- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c@@ -5046,6 +5046,15 @@ ixgbevf_dev_start(struct rte_eth_dev *dev) } ixgbevf_configure_msix(dev); + /* When a VF port is bound to VFIO-PCI, only miscellaneous interrupt + * is mapped to VFIO vector 0 in eth_ixgbevf_dev_init( ). + * If previous VFIO interrupt mapping setting in eth_ixgbevf_dev_init( ) + * is not cleared, it will fail when following rte_intr_enable( ) tries + * to map Rx queue interrupt to other VFIO vectors. + * So clear uio/vfio intr/evevnfd first to avoid failure. + */ + rte_intr_disable(intr_handle); + rte_intr_enable(intr_handle); /* Re-enable interrupt for VF */ --2.7.5