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 7761DA09EF for ; Tue, 12 Jan 2021 07:27:06 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6A319140E56; Tue, 12 Jan 2021 07:27:06 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 98DB8140E4D; Tue, 12 Jan 2021 07:27:02 +0100 (CET) IronPort-SDR: 3BwLCuUOeI+1Ky8+65np/4iSh19o9h9iS4rxlBo/8EEldE2EVbR++nTTjMv55Tv5M01PcLiOa1 dvqPV2DY/ASw== X-IronPort-AV: E=McAfee;i="6000,8403,9861"; a="165075617" X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="165075617" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jan 2021 22:27:00 -0800 IronPort-SDR: 7yPF7kmZs4C2CMT/TATqvUuOJwYeE7L+GLyoLypGcKy5KZxhTd9/NWr9PYzw0PBbxnQF2bO8Ug YCMpcVM/3s2A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="352899890" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga008.fm.intel.com with ESMTP; 11 Jan 2021 22:27:00 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) 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.1713.5; Mon, 11 Jan 2021 22:26:59 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 11 Jan 2021 22:26:59 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 11 Jan 2021 22:26:59 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.171) 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.1713.5; Mon, 11 Jan 2021 22:26:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EsRxUJV7y4YEXdlzqJcyMFV3KM87uJbKHAqzdNE6Nq5dB8dr7AlEFOJKcZ2p2YpplEculSCClayVtYLX7oktU0AOJ0VkDoQAvWDhyaE/IoTOQ5+7jYigXJo/kihCqIAR5UJc1qOgMvqY7iPV4/vtsyuVWdDTVu61VI0ehcB2iKvGEjWF9B46gHfLEIDqsKzm7XwyJXUYVSMKDCnGNXZYE4PEJLDvicKTeZ4srqOGMuH9tZa2jAGRWsezWFcWiURoU+UkzLm5RvY0eSJ3stbKVM94v+HCCl4OBQIPRtU8a010FntJOl6FzClMsUZulQN9stQLzC201NeknWWEFWxwcg== 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=qLXJeWNr/8gqzsbrgEwYd1YlKzVmNcCa+KZaa0dzm+8=; b=e5yj+z/COAXCw3/Mc8sK9UcqnK7k9upCURluL3/hRFSm91fAZP6HlpH9Lkyb2e821pz9KIoEnGs5vPs8WZkONaW29flqo2PiKR5ERvROKnou/QIdWEW3nn44VhWRFMu/PAl/YIjZZ3FG3E8Ljp7msbF6TKO6UCoVhujCB4MagES8fdcuCVhQ8pYBDS/BwBHK1NaAyUgZFYhUHpUGjnlQwH5Me/GRu+cmsXSVqLZoxgKT5w2OqaMd+G08pWxh51AErRPpmO5IQSRwD076aFD0odgxSb8pzVFV/SDkQYMP6BU0h97XrZ19MIa40fvHx+b9pWO18eRWmEvfkECRVjmnCw== 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=qLXJeWNr/8gqzsbrgEwYd1YlKzVmNcCa+KZaa0dzm+8=; b=UCRdbouaZNEzmhbEeXOzAnBdJvAwwhuqbf3SBkZfGF5ucwZGKRkWCYLHcGCMJOXa3M066t1KtGaX9w490mXVKaJcrMBWtZhw2PLD1LaByj05TnmOx/gUKiCUx2WDNao332+waPg/GqjILU2wY09a6acnZQFMWfdt5e2cMvlC7UA= Received: from CY4PR1101MB2069.namprd11.prod.outlook.com (2603:10b6:910:17::7) by CY4PR11MB1270.namprd11.prod.outlook.com (2603:10b6:903:2c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Tue, 12 Jan 2021 06:26:55 +0000 Received: from CY4PR1101MB2069.namprd11.prod.outlook.com ([fe80::517e:53c:fca7:7668]) by CY4PR1101MB2069.namprd11.prod.outlook.com ([fe80::517e:53c:fca7:7668%9]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 06:26:55 +0000 From: "Xu, Ting" To: "Yu, DapengX" , "Zhang, Qi Z" , "Wu, Jingjing" , "Xing, Beilei" CC: "dev@dpdk.org" , "Yu, DapengX" , "stable@dpdk.org" Thread-Topic: [PATCH] net/iavf: fix vector id assignment Thread-Index: AQHW5agT082IFl4eOUC4+U7dsxKh3aojiqAw Date: Tue, 12 Jan 2021 06:26:54 +0000 Message-ID: References: <20201230065347.90115-1-dapengx.yu@intel.com> <20210108102111.7519-1-dapengx.yu@intel.com> In-Reply-To: <20210108102111.7519-1-dapengx.yu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 54e85f77-5ab7-45fd-0e28-08d8b6c30e7f x-ms-traffictypediagnostic: CY4PR11MB1270: 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:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3TH8Nc+LN1A4g1OhhrK4ABKnYLhtt6HrVWMK279kTsSSsgtgTQGTRIPTAE2q5pKZvKDSKoqU/a2b3JIuHJQP/E0C8+JYTPcIxIBm+gxx42ua4/CIXDIW6sySuNsaT3FikbBURo88U5bsFRAgEMoPqJUrPxx0yNlpjFko4mDs5Yj46MS7mosYiTebEi/vYVWwiQwo4niw9/iCK0OaDRdBcKAMF2NRv7at1reNU2Fwc38R8Uk1w/gfUuOC9jWGMt5SovAjEzVT8rV5D0BeNGpgT8EIMPLcMXS8VMMZbWrTP24AK4EuLlOdcq+7rhwJlwQ1voHCBTuGpFQ7LbfQo+RnvczF7a/+6wbQzvBjuFk8eKf0BEaJ+fAVFg+3lQyYhfi9OXXLwa+C+NUIsoBYrCo6Ew== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR1101MB2069.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(346002)(366004)(376002)(396003)(136003)(450100002)(66446008)(2906002)(186003)(110136005)(6506007)(86362001)(71200400001)(8676002)(5660300002)(53546011)(66946007)(55016002)(26005)(6636002)(9686003)(478600001)(33656002)(83380400001)(52536014)(66476007)(64756008)(316002)(66556008)(7696005)(54906003)(76116006)(4326008)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?eBCoCJU1PfCaiYsB7BJL1HUnv45telBKQCYLEnVH59zU23CxVuigWHML5Zm7?= =?us-ascii?Q?aMoTIkC5Yc53s77emRcyaSd4ekMf+Vzy7SLKGPWvF8OSDbqoEt80+EpNF1Wv?= =?us-ascii?Q?RoXTDaCy67w3IbI3p0YW22Q6OELpWcnB07PHbLhqXTCufEyXPxP/pVQMa2UR?= =?us-ascii?Q?Zb7i7ldqihBwsFDjw+xvZ296ExXdTBli7h3cqEj5z0iFGMpMdHcS+c5hPHAT?= =?us-ascii?Q?wB4FXa5G1MMq1XOa1HJ+ntaBSCRVcBA7tKxQ7SRO4k9gqA2Rzed9h0G0PVyn?= =?us-ascii?Q?mdoij79b4EkE5q7vY+Bvw3lw/JjtVCTbMc0IozvAGT//EFpilXaa884xK4zm?= =?us-ascii?Q?4W7p6tcGnEctxCtltdwGrYKnYU1LWkjSWc06D/XDcgjermhK1clnyBNeUgCz?= =?us-ascii?Q?4qunfujAsD75NOKu0PKWCy4VpCZCcwIEKWjLOPZBSOz8tsFKDvGgIn9OW4Wa?= =?us-ascii?Q?IZuJ84/XSf76aB3uWanxpoBAVYbsFRcle5rL79nO6nsEZ1MHrbJMDvk+AFB1?= =?us-ascii?Q?hseaQQQeevwdvq5+MmaYulhkJT5GkIt2wrriMT0+XDgqlf4R6/3mXkyDWQxR?= =?us-ascii?Q?D322F4gNvw5rq8WBJz19udgOP+s+bnvbJFmbkckFLNh5IBHcI+atIMTknLDu?= =?us-ascii?Q?zfb7hu92IRUSOvn7gKZag+3S82yWTzCOifPMuAcr6Q5yGMYLKSfCMfKfeB9E?= =?us-ascii?Q?daIuyILbaFILVB7L8PF4EyXEpJc+CHMoGN8SKnpnw1yW0H7bhjq9WPuwynxy?= =?us-ascii?Q?ypQH845qsFi5rVwaCmfDlajuEFFyZLrJQSExblEGuVEwjqysh7crVtYUb3OX?= =?us-ascii?Q?ES6ryAyT6dMLl7OLk1/ZVINihZL14KxdPuVcK5o1UyQaiYnQXBa3RWa8EMMn?= =?us-ascii?Q?qWZOppQtX1j5YYSO26BPMBZyHksVTx/CP2/wt4PGQDrJEx6+gGIJfykTpSm2?= =?us-ascii?Q?zXplg5MOZI/Ac6ae4wGYoGAOADArQRr4tAF95/MWcRE=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: CY4PR1101MB2069.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54e85f77-5ab7-45fd-0e28-08d8b6c30e7f X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2021 06:26:54.9051 (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: x+tFV9L1JrpzuHMMdewIoNM6R/Z65PVy+gnxsAVdcA9RfeF3MytWzLE9++Hnk0ulOANHPkMvfeQdbKGYNXFDUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1270 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [PATCH] net/iavf: fix vector id assignment X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" > -----Original Message----- > From: dapengx.yu@intel.com > Sent: Friday, January 8, 2021 6:21 PM > To: Zhang, Qi Z ; Wu, Jingjing ; > Xing, Beilei ; Xu, Ting > Cc: dev@dpdk.org; Yu, DapengX ; stable@dpdk.org > Subject: [PATCH] net/iavf: fix vector id assignment >=20 > From: YU DAPENG >=20 > The number of MSI-X interrupts on Rx shall be the minimal value of the > number of available MSI-X interrupts per VF - 1 (the 1 is for miscellaneo= us > interrupt) and the number of configured Rx queues. > The current code break the rule because the number of available MSI-X > interrupts is used as the first value, but code does not subtract 1 from = it. >=20 > In normal situation, the first value is larger than the second value. So = each > queue can be assigned a unique vector_id. >=20 > For example: 17 available MSI-X interrupts, and 16 available Rx queues pe= r VF; > but only 4 Rx queues are configured when device is started. > vector_id:0 is for misc interrupt, vector_id:1 for Rx queue0, > vector_id:2 for Rx queue1, vector_id:3 for Rx queue2, vector_id:4 for Rx > queue3. >=20 > Current code breaks the rule in this normal situation, because when assig= n > vector_ids to interrupt handle, for example, it does not assign > vector_id:4 to the queue3, but assign vector_id:1 to it, because the cond= ition > used causes vector_id wrap around too early. >=20 Hi, Dapeng, Could you please further explain in which condition will this error happen?= Seems it requires vf->nb_msix =3D 3 to make it happen, but I do not notice= such situation. I know it may be an example, is there any more specific case? Thanks. > In iavf_config_irq_map(), the current code does not write data into the l= ast > element of vecmap[], because of the previous code break. Which cause wron= g > data is sent to PF with opcode VIRTCHNL_OP_CONFIG_IRQ_MAP and cause > error: VIRTCHNL_STATUS_ERR_PARAM(-5). >=20 > If kernel driver supports large VFs (up to 256 queues), different queues = can be > assigned same vector_id. >=20 > In order to adapt to large VFs and avoid wrapping early, the condition is > replaced from vec >=3D vf->nb_msix to vec >=3D vf->vf_res->max_vectors. >=20 > Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") > Cc: stable@dpdk.org >=20 > Signed-off-by: YU DAPENG > --- > drivers/net/iavf/iavf_ethdev.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) >=20 > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethde= v.c > index 7e3c26a94..d730bb156 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -483,6 +483,7 @@ static int iavf_config_rx_queues_irqs(struct > rte_eth_dev *dev, > struct iavf_qv_map *qv_map; > uint16_t interval, i; > int vec; > + uint16_t max_vectors; >=20 > if (rte_intr_cap_multiple(intr_handle) && > dev->data->dev_conf.intr_conf.rxq) { @@ -570,15 +571,16 @@ > static int iavf_config_rx_queues_irqs(struct rte_eth_dev *dev, > /* If Rx interrupt is reuquired, and we can use > * multi interrupts, then the vec is from 1 > */ > - vf->nb_msix =3D RTE_MIN(vf->vf_res->max_vectors, > - intr_handle->nb_efd); > + max_vectors =3D > + vf->vf_res->max_vectors - > IAVF_RX_VEC_START; > + vf->nb_msix =3D RTE_MIN(max_vectors, intr_handle- > >nb_efd); > vf->msix_base =3D IAVF_RX_VEC_START; > vec =3D IAVF_RX_VEC_START; > for (i =3D 0; i < dev->data->nb_rx_queues; i++) { > qv_map[i].queue_id =3D i; > qv_map[i].vector_id =3D vec; > intr_handle->intr_vec[i] =3D vec++; > - if (vec >=3D vf->nb_msix) > + if (vec >=3D vf->vf_res->max_vectors) > vec =3D IAVF_RX_VEC_START; > } > vf->qv_map =3D qv_map; > -- > 2.27.0