From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5DBC5A0C57; Thu, 12 Aug 2021 09:41:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 13CB74014D; Thu, 12 Aug 2021 09:41:39 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 2168A40042 for ; Thu, 12 Aug 2021 09:41:36 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10073"; a="194884702" X-IronPort-AV: E=Sophos;i="5.84,315,1620716400"; d="scan'208";a="194884702" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Aug 2021 00:41:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,315,1620716400"; d="scan'208";a="422457072" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga003.jf.intel.com with ESMTP; 12 Aug 2021 00:41:35 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Thu, 12 Aug 2021 00:41:35 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 12 Aug 2021 00:41:35 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Thu, 12 Aug 2021 00:41:35 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Thu, 12 Aug 2021 00:41:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ErZaXQ1Jo08gIuChe/6ndSGgj2BG+vTBV5dzacrnnzJA/CHY4SgltMrcGCXzXr8GYwzs1pScpWoVv+LXeRH/dal+Js9CJLQlfs5hD+3DQyQdP5+0R7FCNC3HjT0BZcql06iOhlStkAdnKgDS/arHaDMJIl6uZbuoGOSmaEEwYDvx+KQe8k5vOklKfnApkxidaZNbEehY72MfDyeUE5CC+m4VqTl2kaLYvOSwfRTyIwrXh4gkQXVKwZQxC/fKrHmQYXn5+7nkhVENC3UlNtbWyTuZAbnq0FNmjQu+SzT6bHFP1e4TZntu9hWRrNdLAQ2tbT5EB92rHiM0jU3MYzoNiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yeKCtNMkgU/59PpxDo6Vcno4iR+h3jqKrFW5kAY9L3c=; b=lJCunjLTt1yOfvaIE/konNY78tqpYNZhz3EgUswKcEX/JH5in7QKPtoREehP3MN+iSEbYYxpNJy/J8dYAj/8WoN16bhetHWDX5btCIpSiRHACU71rq9xm3oJ0CuU+BNor/IvpRosUqjMyPAUsX+/iblwND/38bySOJfH6//6UxmP261LTpH6ow2H4wlusSXDAPX5dN8vBxr0579WWPPuvVth8c+192ztFuPtgD8Ro0RcoVsAdlE0NWNkI1LBMb/wmP/2LIrZPsZG464N8KmaYZVstaXy8bkZDi1JbXk3FRkcMh3kRFXfOeoXzIcuUWJVGzlOTtPqJLvCEZHK/D6V8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yeKCtNMkgU/59PpxDo6Vcno4iR+h3jqKrFW5kAY9L3c=; b=vJRyNQXtS4spyjacIUtzZrbdQxL9ek/S3SuVgsU2G3D3FvF84QUwfd6zkivuAHrg6fxoRj8Pa/od1FKCiVauFrSz3jR6Fw+91kCKr7VuOdbg4V3BlzZmQtSKCjma39yAsBcuHoAfyrC4VMFaAsSxSgd96h1ZQtTR0Ih6pSUdWqM= Received: from MW3PR11MB4587.namprd11.prod.outlook.com (2603:10b6:303:58::7) by MWHPR11MB1885.namprd11.prod.outlook.com (2603:10b6:300:111::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.20; Thu, 12 Aug 2021 07:41:28 +0000 Received: from MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::88cd:3b93:c8bc:d14d]) by MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::88cd:3b93:c8bc:d14d%4]) with mapi id 15.20.4415.014; Thu, 12 Aug 2021 07:41:28 +0000 From: "Wu, Jingjing" To: "Zhang, Qi Z" , "Zhang, RobinX" , "dev@dpdk.org" CC: "Xing, Beilei" , "Guo, Junfeng" , "Yang, SteveX" Thread-Topic: [PATCH] net/iavf: remove interrupt handler Thread-Index: AQHXf5isBO6hKFEgxESMQ1b5FG7noKtsbouAgAMs1MA= Date: Thu, 12 Aug 2021 07:41:27 +0000 Message-ID: References: <20210723074630.193200-1-robinx.zhang@intel.com> <7c4686116bee456e8c18da1e8957ed65@intel.com> In-Reply-To: <7c4686116bee456e8c18da1e8957ed65@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2e81b4ba-9cd0-437f-b09a-08d95d649826 x-ms-traffictypediagnostic: MWHPR11MB1885: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3383; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8s1aPdUdev9qx/K1UYe7qddWi70OCJeShQqtT4nojMZRDllzHgXs4qdZCogUDNwOrIyIQqnmib2i0tOpD98Pd7rrYwWYKs2/IQUM83tyzB4TuXAvnP0tUunA50+mFFCKSFeoTxriVu3nGtfvwXN3Iqxr8EgiqhS3RZOi6TLHwLMSFRO/7b7rgLuOeGTWJlRnVFn+nowsLj3qIocVtQpToK24iJFFCmCaieAeq8zUkiH2gHvxRsEC6uaWedJMhiNjfzeQQvInUtOzw0grfz1NI7anjMcmI2p+hmvUKILX6xpSwLGRV8ySX59o9C55uDkip0iqomXne+PK5EtBs5Xo+F++ex6ahNqits3i3kvRPlMGYnqTGdI2UFLTvOfEa3rcuNVW+7j7I25Bg/3dIrq6axOrs1Lk68OODO8J1LYXmmiR1kA0EBT3NXgHPeeqtJnt0tVt5nCAlhsmL5GevvpwXczBQapKpvfoFa2JgBIW0FoD/q+m2HxWTdy1Gep1/ibIxEnYwt+SY6o72IKZUG/7/EPptCMVbNzkKZyaMnvxdb40dyvHxRv3mMLN1PNesIPRtGzJoCcs+RRsYi+d/6tMLN7KmMSB5ESRG9pDtqYs1bsOugfHFPY1aG2v0r/mJCkS/Y1gNqZzJLA5E2etpxqaR2qGiFM3/J/lC8NCC/Gbqk39F3ti87PyjMMyH4Y6zKCTEc84Esfgj9gxTgsBaABrSg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR11MB4587.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(4326008)(122000001)(83380400001)(52536014)(38070700005)(55016002)(107886003)(8676002)(5660300002)(71200400001)(86362001)(33656002)(7696005)(66446008)(66946007)(66476007)(66556008)(186003)(26005)(64756008)(76116006)(54906003)(508600001)(9686003)(6506007)(110136005)(316002)(38100700002)(8936002)(2906002)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?1EJB9nz5phEQjgLkn1jyv9/az+Q3BBzhHQJO7Xw2xm+yvWAO3B8OE0hL/wtA?= =?us-ascii?Q?aIkTP8gFHs100wV9OztLYWE6QC+fB9CSLB5ocM3Z1EMA2ozZ8ob/+HktFjKL?= =?us-ascii?Q?3sMCwVbcKwEVOntXd97dRqL/NUuME8qrxEMMT16IdHw77elu9ighuCtvDSze?= =?us-ascii?Q?FJJgBxewRUelXEduj0SnZNiQUxAvFxpf1Ty1EQY7JvOwSjJ2uVZZNxU9FbOO?= =?us-ascii?Q?bVAdl1vxPFdSZ2NoGpKQu6dJ9DAAhdI0LF0taR8S+V0DSlMt3FTldEnqe8SO?= =?us-ascii?Q?gb6gjR4nnX5P/H0LaVqoUuCgXqmFvE9K/64qZbNQlRwn6lAeCEp+NF2UmbAY?= =?us-ascii?Q?LdAw9smcHbTXMcg88C4ykefcksYpwCB8cHWfC7xfXRJ1QtgvZIpEStfJ7UoS?= =?us-ascii?Q?mb4qCpl9FzmF+UhN94mpVSKLxFan4VDgJbyC4E67UcdT/qZse6gxS3+1qYU9?= =?us-ascii?Q?kIMgSjwVqH7FMz1GW8CA1l8dVWHb3wL0P3gX2EGagYqXEElI+mzEpIayO1Ty?= =?us-ascii?Q?jGSkHlAbCwG6uDShO9EfdYuv0serMYDgxbaO+79Q8lBL7hjUDtquVwd2Ubx0?= =?us-ascii?Q?c5UVL6v8X/FkrWgCCf4ZGK4ZdTkEcglDnRoUPLm9Hu3dpjF6OBFepKqJ2Jr6?= =?us-ascii?Q?tvPTqis6iOFKcUgZtD5cpQ9ad2HKemccqVY0Z9I9dPEA2i4OnRhZMMxgnZgV?= =?us-ascii?Q?42azjy3/euVP46nDjaTsPBN8vy8Y2hmGMgEX6RH78F2QYTOaS+QOxHkBVKHJ?= =?us-ascii?Q?Qj8eUk3SdG5c1A8y8Ugqc11SioG+AKX5B3pmIxYWwlTRT0MXEzsc375DKm9b?= =?us-ascii?Q?GN00IV0eBTYRhQEAA8JU+0dcRwUpj8bhE632duG/tNdAnoxsxGfm7TyV/Zgs?= =?us-ascii?Q?nut4RuJU5GcEPbQ9VLp90q1mOyvJjr1lejpRxczRY17Ig9gBglgwY1PvKUCS?= =?us-ascii?Q?og7wKl08+H0U24QIo+fX5Bh3h/jS9xkT7dzAmT0RXHvCqZdWJX3g+V7LYCBI?= =?us-ascii?Q?GMrBx/SoBaZ9fgmkf1Kv0jBYgsG37gKjKTxoyFvCY9DnDNfuNEf8WMtxJcyW?= =?us-ascii?Q?oK/SHOSB/qCBhj0RJ0T7N7+1aKqqUlSL0h8oc0u7pRo2xVOmf3qx8PU1FqR6?= =?us-ascii?Q?0O4zf23yvOn6FeXUzYGcbxX9vKoD+VFTtG8GV/AvFpIddZKRaeyC5WbzY0B/?= =?us-ascii?Q?nDnrvji1FGiCzXokYnfoLPtmzB5WbKl47B3MsX4HvT1Y3ZBZkN68u7taRuz6?= =?us-ascii?Q?uBURuP29v33rXTxXucH98YnHH9XRVHZRQPf/row8BjLpzQBpMToeK0r/iZ2y?= =?us-ascii?Q?JSg=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR11MB4587.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e81b4ba-9cd0-437f-b09a-08d95d649826 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2021 07:41:27.8001 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1AZU0VeBaSP6ZVOgmo2CAA2ZxNxubo411VdbkoL4Jmh6CnN0xS7smsa4gAO6BNU9e0+Zw7i6wOP8AWrzROxcng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1885 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] net/iavf: remove interrupt handler X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > > -----Original Message----- > > From: Zhang, RobinX > > Sent: Friday, July 23, 2021 3:47 PM > > To: dev@dpdk.org > > Cc: Wu, Jingjing ; Xing, Beilei > > ; Zhang, Qi Z ; Guo, > > Junfeng ; Yang, SteveX > ; > > Zhang, RobinX > > Subject: [PATCH] net/iavf: remove interrupt handler >=20 > As you are not going to remove interrupt handler for all the cases, the t= itle is > misleading Better replace it with "enable interrupt polling" >=20 > > > > For VF hosted by Intel 700 series NICs, internal rx interrupt and > > adminq interrupt share the same source, that cause a lot cpu cycles be > > wasted on interrupt handler on rx path. > > > > The patch disable pci interrupt and remove the interrupt handler, > > replace it with a low frequency(50ms) interrupt polling daemon which > > is implemtented by registering an alarm callback periodly. > > > > The virtual channel capability bit VIRTCHNL_VF_OFFLOAD_WB_ON_ITR can > > be used to negotiate if iavf PMD needs to enable background alarm or > > not, so ideally this change will not impact the case hosted by Intel 80= 0 series > NICS. > > > > Suggested-by: Jingjing Wu > > Signed-off-by: Qi Zhang >=20 As it is a kind of problem solving, can it be sent to dpdk-stable too? > No need to add me as the author for this patch but, you can add a referen= ce > to the original i40e commit to explain you implement the same logic. >=20 > > Signed-off-by: Robin Zhang > > --- > > drivers/net/iavf/iavf.h | 3 +++ > > drivers/net/iavf/iavf_ethdev.c | 37 > > ++++++++++++++-------------------- > > drivers/net/iavf/iavf_vchnl.c | 11 ++++------ > > 3 files changed, 22 insertions(+), 29 deletions(-) > > > > diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h index > > b3bd078111..771f3b79d7 100644 > > --- a/drivers/net/iavf/iavf.h > > +++ b/drivers/net/iavf/iavf.h > > @@ -69,6 +69,8 @@ > > #define IAVF_QUEUE_ITR_INTERVAL_DEFAULT 32 /* 32 us */ > > #define IAVF_QUEUE_ITR_INTERVAL_MAX 8160 /* 8160 us */ > > > > +#define IAVF_ALARM_INTERVAL 50000 /* us */ > > + > > /* The overhead from MTU to max frame size. > > * Considering QinQ packet, the VLAN tag needs to be counted twice. > > */ > > @@ -372,6 +374,7 @@ int iavf_config_irq_map_lv(struct iavf_adapter > > *adapter, uint16_t num, void iavf_add_del_all_mac_addr(struct > > iavf_adapter *adapter, bool add); int iavf_dev_link_update(struct > > rte_eth_dev *dev, __rte_unused int wait_to_complete); > > +void iavf_dev_alarm_handler(void *param); > > int iavf_query_stats(struct iavf_adapter *adapter, > > struct virtchnl_eth_stats **pstats); int > > iavf_config_promisc(struct iavf_adapter *adapter, bool enable_unicast, > > diff --git a/drivers/net/iavf/iavf_ethdev.c > > b/drivers/net/iavf/iavf_ethdev.c index > > 41382c6d66..bbe5b3ddb1 100644 > > --- a/drivers/net/iavf/iavf_ethdev.c > > +++ b/drivers/net/iavf/iavf_ethdev.c > > @@ -16,6 +16,7 @@ > > #include > > #include > > #include > > +#include > > #include > > #include > > #include > > @@ -692,9 +693,9 @@ static int iavf_config_rx_queues_irqs(struct > > rte_eth_dev *dev, > > */ > > vf->msix_base =3D IAVF_MISC_VEC_ID; > > > > -/* set ITR to max */ > > +/* set ITR to default */ > > interval =3D iavf_calc_itr_interval( > > -IAVF_QUEUE_ITR_INTERVAL_MAX); > > +IAVF_QUEUE_ITR_INTERVAL_DEFAULT); > > IAVF_WRITE_REG(hw, IAVF_VFINT_DYN_CTL01, > > IAVF_VFINT_DYN_CTL01_INTENA_MASK | > > (IAVF_ITR_INDEX_DEFAULT << > > @@ -853,9 +854,8 @@ iavf_dev_start(struct rte_eth_dev *dev) > > PMD_DRV_LOG(ERR, "configure irq failed"); goto err_queue; } > > -/* re-enable intr again, because efd assign may change */ > > +/* only enable interrupt in rx interrupt mode */ > > if (dev->data->dev_conf.intr_conf.rxq !=3D 0) { > > -rte_intr_disable(intr_handle); rte_intr_enable(intr_handle); } > > > > @@ -889,6 +889,9 @@ iavf_dev_stop(struct rte_eth_dev *dev) > > > > PMD_INIT_FUNC_TRACE(); > > > > +if (dev->data->dev_conf.intr_conf.rxq !=3D 0) > > +rte_intr_disable(intr_handle); > > + > > if (adapter->stopped =3D=3D 1) > > return 0; > > > > @@ -1669,8 +1672,6 @@ iavf_dev_rx_queue_intr_enable(struct > rte_eth_dev > > *dev, uint16_t queue_id) > > > > IAVF_WRITE_FLUSH(hw); > > > > -rte_intr_ack(&pci_dev->intr_handle); > > - > > return 0; > > } > > > > @@ -2201,8 +2202,8 @@ iavf_disable_irq0(struct iavf_hw *hw) > > IAVF_WRITE_FLUSH(hw); } > > > > -static void > > -iavf_dev_interrupt_handler(void *param) > > +void > > +iavf_dev_alarm_handler(void *param) > > { > > struct rte_eth_dev *dev =3D (struct rte_eth_dev *)param; struct > > iavf_hw *hw =3D IAVF_DEV_PRIVATE_TO_HW(dev->data->dev_private); > > @@ -2212,6 +2213,9 @@ iavf_dev_interrupt_handler(void *param) > > iavf_handle_virtchnl_msg(dev); > > > > iavf_enable_irq0(hw); > > + > > +rte_eal_alarm_set(IAVF_ALARM_INTERVAL, > > + iavf_dev_alarm_handler, dev); > > } > > > > static int > > @@ -2314,13 +2318,8 @@ iavf_dev_init(struct rte_eth_dev *eth_dev) > > rte_ether_addr_copy((struct rte_ether_addr *)hw->mac.addr, > > ð_dev->data->mac_addrs[0]); > > > > -/* register callback func to eal lib */ > > -rte_intr_callback_register(&pci_dev->intr_handle, > > - iavf_dev_interrupt_handler, > > - (void *)eth_dev); > > - > > -/* enable uio intr after callback register */ > > -rte_intr_enable(&pci_dev->intr_handle); > > +rte_eal_alarm_set(IAVF_ALARM_INTERVAL, > > + iavf_dev_alarm_handler, eth_dev); > > > > /* configure and enable device interrupt */ iavf_enable_irq0(hw); @@ > > -2341,7 +2340,6 @@ iavf_dev_close(struct rte_eth_dev *dev) { struct > > iavf_hw *hw =3D IAVF_DEV_PRIVATE_TO_HW(dev->data->dev_private); > > struct rte_pci_device *pci_dev =3D RTE_ETH_DEV_TO_PCI(dev); -struct > > rte_intr_handle *intr_handle =3D &pci_dev->intr_handle; struct > > iavf_adapter *adapter =3D > > IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > > struct iavf_info *vf =3D > > IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private); > > @@ -2364,12 +2362,7 @@ iavf_dev_close(struct rte_eth_dev *dev) > > iavf_config_promisc(adapter, false, false); > > > > iavf_shutdown_adminq(hw); > > -/* disable uio intr before callback unregister */ > > -rte_intr_disable(intr_handle); > > - > > -/* unregister callback func from eal lib */ > > -rte_intr_callback_unregister(intr_handle, > > - iavf_dev_interrupt_handler, dev); > > +rte_eal_alarm_cancel(iavf_dev_alarm_handler, dev); > > iavf_disable_irq0(hw); > > > > if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_QOS) diff --git > > a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c index > > 06dc663947..af19dd6412 100644 > > --- a/drivers/net/iavf/iavf_vchnl.c > > +++ b/drivers/net/iavf/iavf_vchnl.c > > @@ -13,6 +13,7 @@ > > #include > > > > #include > > +#include > > #include > > #include > > #include > > @@ -1663,7 +1664,6 @@ iavf_request_queues(struct iavf_adapter > > *adapter, uint16_t num) { struct rte_eth_dev *dev =3D > > adapter->eth_dev; struct iavf_info *vf =3D > > IAVF_DEV_PRIVATE_TO_VF(adapter); -struct rte_pci_device *pci_dev =3D > > RTE_ETH_DEV_TO_PCI(dev); struct virtchnl_vf_res_request vfres; > > struct iavf_cmd_info args; uint16_t num_queue_pairs; @@ -1687,13 > > +1687,10 @@ iavf_request_queues(struct iavf_adapter *adapter, uint16_t > > num) args.out_buffer =3D vf->aq_resp; args.out_size =3D IAVF_AQ_BUF_S= Z; > > > > -/* > > - * disable interrupt to avoid the admin queue message to be read > > - * before iavf_read_msg_from_pf. > > - */ > > -rte_intr_disable(&pci_dev->intr_handle); > > +rte_eal_alarm_cancel(iavf_dev_alarm_handler, dev); > > err =3D iavf_execute_vf_cmd(adapter, &args); > > -rte_intr_enable(&pci_dev->intr_handle); > > +rte_eal_alarm_set(IAVF_ALARM_INTERVAL, > > + iavf_dev_alarm_handler, dev); > > if (err) { > > PMD_DRV_LOG(ERR, "fail to execute command OP_REQUEST_QUEUES"); > > return err; > > -- > > 2.25.1 >=20