From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id C73441B24B; Tue, 10 Oct 2017 05:29:41 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Oct 2017 20:29:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,503,1500966000"; d="scan'208";a="1204084511" Received: from kmsmsx154.gar.corp.intel.com ([172.21.73.14]) by fmsmga001.fm.intel.com with ESMTP; 09 Oct 2017 20:29:38 -0700 Received: from pgsmsx106.gar.corp.intel.com ([169.254.9.199]) by KMSMSX154.gar.corp.intel.com ([169.254.12.132]) with mapi id 14.03.0319.002; Tue, 10 Oct 2017 11:29:37 +0800 From: "Dai, Wei" To: "Lu, Wenzhuo" , "Ananyev, Konstantin" , "Liang, Cunming" , "Ma, Jianwei" CC: "dev@dpdk.org" , "stable@dpdk.org" Thread-Topic: [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF Thread-Index: AQHTOANGW7Fo0QsyfkypcsjBytCSCaLcf8Jg Date: Tue, 10 Oct 2017 03:29:36 +0000 Message-ID: <49759EB36A64CF4892C1AFEC9231E8D650B9FCA4@PGSMSX106.gar.corp.intel.com> References: <1505902146-50272-1-git-send-email-wei.dai@intel.com> <1506565713-70534-1-git-send-email-wei.dai@intel.com> In-Reply-To: <1506565713-70534-1-git-send-email-wei.dai@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjAzYWQzZmYtNTljMi00NTRjLWEyMWItYzJlMGZjMjFiMjc5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik11ODM4XC9mUHNkQnprV25Za1dkZEpKaFNuR3hqZzd0K0JBRmFSb1g1NjVJPSJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [172.30.20.206] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Oct 2017 03:29:42 -0000 Hi, Jianwei=20 How about your test result ? Hi Wenzhuo Would you please review this patch ? Thanks a lot ! > -----Original Message----- > From: Dai, Wei > Sent: Thursday, September 28, 2017 10:29 AM > To: Lu, Wenzhuo ; Ananyev, Konstantin > ; Liang, Cunming > ; Ma, Jianwei > Cc: dev@dpdk.org; Dai, Wei ; stable@dpdk.org > Subject: [PATCH v2] net/ixgbe: fix VFIO interrupt mapping in VF >=20 > When a VF port is bound to VFIO-PIC, only miscellaneous interrupt is mapp= ed > 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 avoid failure. >=20 > Fixes: 77234603fba0 ("net/ixgbe: support VF mailbox interrupt for link > up/down") > Cc: stable@dpdk.org >=20 > Signed-off-by: Wei Dai > --- > drivers/net/ixgbe/ixgbe_ethdev.c | 9 +++++++++ > 1 file changed, 9 insertions(+) >=20 > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c > b/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); >=20 > + /* 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); >=20 > /* Re-enable interrupt for VF */ > -- > 2.7.5