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 37941A09EF for ; Tue, 12 Jan 2021 07:44:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 26DD2140E77; Tue, 12 Jan 2021 07:44:13 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 0CBAB140E64; Tue, 12 Jan 2021 07:44:10 +0100 (CET) IronPort-SDR: NcfP1XQwX8UuAMYgd3zsfV6hFnsPkRiFF3TBxok/ujVyapXjfonHqHns9/n0A4LBF9/eNrG5Hc l4CNBr9vOvSg== X-IronPort-AV: E=McAfee;i="6000,8403,9861"; a="239535797" X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="239535797" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jan 2021 22:44:08 -0800 IronPort-SDR: Vlepvv8I9ghnhceGyCNxZ4+8lAeQytC3tk9LjusSp6/uKW06cZ4H9xkj4b6B6mJJCJs4lllJMa CP59ympVw8XQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="352904125" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga008.fm.intel.com with ESMTP; 11 Jan 2021 22:44:08 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) 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:44:07 -0800 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX612.amr.corp.intel.com (10.22.229.25) 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:44:07 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx604.amr.corp.intel.com (10.22.229.17) 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:44:07 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.52) by edgegateway.intel.com (134.134.137.103) 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:44:07 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NoRM611RlXAF+lu/rDYb+sNU1FzwAJQtxH7g9GOzDL/NzruxKMXPsXpM6gxXT7wc1wbRkpj+C1peLcZZw1xn0gmQgQZuK6HQbJlsRMK2+rKl6GPVFJs4T1IC8bYMs6+a9fM/XnGwCjKKG4is24LRGdtvKZR2jKXqy9DoT8YA/4GIZwwsQZ1dzUWfbA6+ElCc9cGDg7IZUcyvRZITc1WTnyOhiRIB/wDKQfcA/Qs2G0I2S0KQUsLU8/FwOVvqbDxhDrZc2NV5as83Y4vxe0q1leWqssf/zTqPC/mFcn/VyT3ElpZ/n0BRzX7fB6fng4jlzD/Sm6h74bv0rnSfk/cyGw== 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=CUEaWEjNA8ggkXyyp/+rIAsGfwAq75Sj4vbkcasfIk4=; b=Tj8Svtk/ime2PxnxM4F+qEO4YkGScRqX0Lb6lMfC1pRLLJV2WBdInnWJHzYyl1EW3ayoThcKepvNqnySe3tQMigmvQkrsfOOPcxT0O1aUx44GmnS4wTb2n8GYtKlgDRdt7PhtUe/1zju/iRkx9ZyoPTV5UEfMRb9B4HHLCYZYulgOHo4eLnaYeODIVHBXpaLNrwJ7dD9uz4mWtcHlKCqwtOq6jEh9A/E28Caug/7xg5t3J0W7QYZrSxy0AlVtD8u3Ofj5vky96+XyGCVEvjV+mKKZvhkuyEqMd8NfiPqJnntqP4zcbHBlZUMR5aodvN0ccfVZD/c1Y43smMH5XIFKA== 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=CUEaWEjNA8ggkXyyp/+rIAsGfwAq75Sj4vbkcasfIk4=; b=pSrTaPPF6ep9nBVOJjVv96s7xeWcfIS5KZjhPPNWZHkN+4JdxSE/vaHo6bwPTNLEmhDjVFdzXZlDwQKoNsYNSqZmfjMdbjkoD8fmbdV9Egyw79VN+zShCeWJakSw47qg6hNCcbjF3IsWW+NtrHg20v7Paq8YtsXA4kB3eVNAckg= Received: from MW3PR11MB4587.namprd11.prod.outlook.com (2603:10b6:303:58::7) by CO1PR11MB5108.namprd11.prod.outlook.com (2603:10b6:303:92::9) 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:44:03 +0000 Received: from MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::58a3:c2e5:a891:2881]) by MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::58a3:c2e5:a891:2881%7]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 06:44:03 +0000 From: "Wu, Jingjing" To: "Xu, Ting" , "Yu, DapengX" , "Zhang, Qi Z" , "Xing, Beilei" CC: "dev@dpdk.org" , "Yu, DapengX" , "stable@dpdk.org" Thread-Topic: [PATCH] net/iavf: fix vector id assignment Thread-Index: AQHW3niTJ9yvXWgeJ0G5DEOYS55GFqodkweAgAYH3gCAAAPW4A== Date: Tue, 12 Jan 2021 06:44:03 +0000 Message-ID: References: <20201230065347.90115-1-dapengx.yu@intel.com> <20210108102111.7519-1-dapengx.yu@intel.com> In-Reply-To: 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-originating-ip: [192.55.46.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 36f2ac58-b6f7-481e-5023-08d8b6c57388 x-ms-traffictypediagnostic: CO1PR11MB5108: 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: yKuI9fcNBwoAqeD2vWodpg9FVv9YQ14RqW60gDKR5x9hq3mih6E1amvl95PlfrFMc4lbPYCiYDdnWv1JWA652KgW5+rN5qArFgWM82wJ436/+ZDbOPuhyR3CA40ALrfFncbMLV5JG15tkmi0IDgrNc9GVMqPWpuLz+svTE0UjvSN/hE7fmrMyQVOI3E1pA91YhDmNeP46K60I1Ri+gHx9f5W2IxiSaFVUC42kuZpGEis2TN3GyvP1L/V922hb38mLs+EyikddKNQ0qazay9NYgxY4nVTZPo1kKix++BSkjVyB4VcVXXtA3Wl3WcDshn/SjTzaFWxUxCpLcyWoVzMUarAXz08DPF67ebf07g2B0saVbIo2mN8qVn38LtyBxF/yGoqV0T/euTGuruvnuQkQyUi2u87Awo3t3rFephiaETyge/lLALWckFP+OlCWDNamRR1XjY4jfQM96py7LhXQg== 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)(376002)(39860400002)(136003)(396003)(346002)(66446008)(66476007)(76116006)(66556008)(64756008)(6636002)(316002)(8676002)(66946007)(9686003)(5660300002)(52536014)(33656002)(450100002)(83380400001)(26005)(71200400001)(6506007)(53546011)(7696005)(4326008)(86362001)(54906003)(110136005)(2906002)(55016002)(186003)(478600001)(8936002)(966005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: ER3OIuS/bnF52Fp3c+q2g7AjOg8Zbw74cGIDuI5KWK96uZbFlyNXoqrg9XQsfAGr2Cg747koHXKKLwJcZ+8srWk6Cr1zuf8eZXw2CNXw7OCjqwPmOaiJr7uu0Lwl6aEmoc8mcifyXp6Xu/v+O/xfD8J2NsT68oGjeoMohmE9aMJuBfRs3230WiAA9NP7lkqFqjIAVmNdHkwbJYSrGh0famD0qr8kxL0pxQ+xOGd/mslxV7wngureOPQ8cPWtczLvtyGYMtAG+d0oCcuNpGkjBUWnDgVj1Pvo27PJ8lpXr98gTFNvL6I6nJQWtHgQgxz3oDgnu1HrGNu+1R5m2a/X2+Hgl2mPU8gp7B5LDeRKbZpUiw7W8hZppsgOThsG0nDq04L68SijsCcJgEPjiQdKly75bFD3CZrp52RfF55MwCYYyT2b5490fTG86+gypa93yEDOweGqY2qViya4tofe1NUyb5sJbvHFxW5SbGlUACrqX8zGQOvkgdHMIq4TsKKKGfUiQktDRRnafXcDHjY/cmGYDl1O6AkYJ0vlJkrgiINTT0heWFxjz7xhDG0+krproKI0Nef8mZw5rSkqQm36c4ZJsqrVhFMdBJUHQBQmZM149V8nVF6VdnQ22cVF6Z99Xj5rWL5aIxIfYyRabUUSZAyor9CCweurKYgRplH6rqxgS3Vyi+3ZgG1oPt6r3J1avhKGpKC7DLQIxIU+xX7U5V58gGUlg3CtNfAxrT+DNE4= 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: 36f2ac58-b6f7-481e-5023-08d8b6c57388 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2021 06:44:03.3352 (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: VahtmUIsEFVDkE07TmEeaIbIdLzQhTYqBsC5EPBBbKkG3SNxCu8PMFCZ1ifQg+fwO/a82dYn8NfwwctA4Kx7aA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5108 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: Xu, Ting > Sent: Tuesday, January 12, 2021 2:27 PM > To: Yu, DapengX ; Zhang, Qi Z > ; Wu, Jingjing ; Xing, Beile= i > > Cc: dev@dpdk.org; Yu, DapengX ; stable@dpdk.org > Subject: RE: [PATCH] net/iavf: fix vector id assignment >=20 > > -----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 > > > > From: YU DAPENG > > > > 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 > > miscellaneous > > 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 fro= m it. > > > > In normal situation, the first value is larger than the second value. > > So each queue can be assigned a unique vector_id. > > > > For example: 17 available MSI-X interrupts, and 16 available Rx queues > > per 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. > > > > Current code breaks the rule in this normal situation, because when > > assign 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 > > condition used causes vector_id wrap around too early. > > >=20 > Hi, Dapeng, >=20 > Could you please further explain in which condition will this error happe= n? > Seems it requires vf->nb_msix =3D 3 to make it happen, but I do not notic= e > such situation. > I know it may be an example, is there any more specific case? >=20 > Thanks. >=20 > > In iavf_config_irq_map(), the current code does not write data into > > the last element of vecmap[], because of the previous code break. > > Which cause wrong data is sent to PF with opcode > > VIRTCHNL_OP_CONFIG_IRQ_MAP and cause > > error: VIRTCHNL_STATUS_ERR_PARAM(-5). > > > > If kernel driver supports large VFs (up to 256 queues), different > > queues can be assigned same vector_id. > > > > 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_vecto= rs. > > > > Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") > > Cc: stable@dpdk.org > > > > Signed-off-by: YU DAPENG > > --- > > drivers/net/iavf/iavf_ethdev.c | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/net/iavf/iavf_ethdev.c > > b/drivers/net/iavf/iavf_ethdev.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; > > > > 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; Looks it is the same fix as http://patchwork.dpdk.org/patch/86118 /. I think this line need to be moved to ahead of RTE_MIN? And the RTE_MIN(max= _vectors, intr_handle->nb_efd); > > + 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