From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 897A6A0540; Thu, 16 Jul 2020 07:13:29 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 37DF81BE98; Thu, 16 Jul 2020 07:13:28 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 91ADD1BE98; Thu, 16 Jul 2020 07:13:26 +0200 (CEST) IronPort-SDR: ZAOCD4t0URrxL7Oi8tvvIMdmVgJ/deXmgbKjZjamaMW6BUHdINlWaXKjn+GGHFvvvu0cnzgUM2 lvo9zZ77+g9g== X-IronPort-AV: E=McAfee;i="6000,8403,9683"; a="136771753" X-IronPort-AV: E=Sophos;i="5.75,358,1589266800"; d="scan'208";a="136771753" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jul 2020 22:13:25 -0700 IronPort-SDR: Gk2qKOC0MUfVlhmX81XWYKwjfv3Q44JmHqiyMrbj4wySdxJQAPaLqaDbEflqEtLINN5vV/FGVW N8VxMFEFq8kQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,358,1589266800"; d="scan'208";a="430369387" Received: from orsmsx102.amr.corp.intel.com ([10.22.225.129]) by orsmga004.jf.intel.com with ESMTP; 15 Jul 2020 22:13:25 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX102.amr.corp.intel.com (10.22.225.129) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jul 2020 22:13:25 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 15 Jul 2020 22:13:24 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 15 Jul 2020 22:13:24 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jul 2020 22:13:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cbbH7IjgJAI3hoL8SvtO03BYBSPqW4fKRXIDnqojeDxfyLwQpzqPJp4Rd2ZnLVc+xxHHBI0UkgjltiJPWBGdfZTSrX7t21YzncExkq+vetnbrRjCl4Ye273uAFqqw0APQp63MzkqZOP1HOOhxr7CQDpMUafunMXNqVPP5d94CPtpAMJyH8XpxY9TDOfPYo+1xRJf25qqeTSZLUghtSMWWfc/1Lg8aapi6UfpzYZUqtIZh/3Lkn2Rxt1Iif4Efkz7ajIXQ9tkNKiKDbbvvM0F9Ew99Wt/tdEWJoJje7a/GQFscBztZsbY0vVybm0guz1iN0aQVtGA0v/Xa25A1+SMqw== 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=zfHghb9fBF0w2uEJaIrID+PF8VXlSMvKVh7NJIg+Oi8=; b=mrNRbpEB/jg8OmQSnDhYxZ7m7UvyqWbqYj5/VoQ4H/AYiwxsKhdFWIlaXvYN4lMNieNIRtyURjcHX2awmjx9Rw5SshPk7FnPpk+Yv3YufvJNAENc9qF/vH2rBqzCojJqvgPWjXtvuW9iofu2ypgZk/PEVJ3Y03CsnMuGepTj1fDZ6ldPQmq35fGVkS/rvWzTvmsTLkSuOP+MnVq2jSustf1fNZ/+AP4WNY8Fmyq+LYawRgGFtcSBEPLXVJ2zj+FBG/8qCRHgNU6HNT+ykctHL6xil7Rr4ic8qOtgld613spmBmOvTtWxdnG5i2MeOVqUQgsYHzxbCqJkUcqXT8ZkTw== 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=zfHghb9fBF0w2uEJaIrID+PF8VXlSMvKVh7NJIg+Oi8=; b=HDXTsw8PSTXzGLTyJHoUR0qCbTpQahoK8h6dLxuJ1ylMIyEK6SueXdXjQyW5ORCh3A58gsDipcDA6nj4f06NqsoCdN82Rq/STgMKN8TOcdEIokS2m/nXR0D3RTZHSi4xBOWhlZiuYyXM1G2UJW1QIvKLcPa+LkvUCG5fn4rEDZ0= Received: from SN6PR11MB2960.namprd11.prod.outlook.com (2603:10b6:805:d4::12) by SN6PR11MB2877.namprd11.prod.outlook.com (2603:10b6:805:5b::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.23; Thu, 16 Jul 2020 05:13:20 +0000 Received: from SN6PR11MB2960.namprd11.prod.outlook.com ([fe80::20d6:bb89:9836:e68a]) by SN6PR11MB2960.namprd11.prod.outlook.com ([fe80::20d6:bb89:9836:e68a%7]) with mapi id 15.20.3174.025; Thu, 16 Jul 2020 05:13:20 +0000 From: "Zhang, AlvinX" To: "Yang, Qiming" , "Guo, Jia" CC: "Xing, Beilei" , "dev@dpdk.org" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v5] net/i40e: fix modify the number of qps in VF Thread-Index: AQHWWylVzmO6FOoXgES8uPXT8tDLNqkJpP6AgAAEFHA= Date: Thu, 16 Jul 2020 05:13:20 +0000 Message-ID: References: <20200716015211.11676-1-alvinx.zhang@intel.com> <20200716042407.14328-1-alvinx.zhang@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.46] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5d1cafba-a3e3-4fef-74ef-08d82946f4b9 x-ms-traffictypediagnostic: SN6PR11MB2877: 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: 44S1QtB00m+u1z2hH3IqGTQQRP0FDeu2Cu2UCqv9bPd2/RMa8nk1O5RtRodt5bazZoZmJfIwIrW3dwF8MUj8ClSPjaXpS/XLxEuhm6WRvAiaoCX8Z9YiFKGpDT5mMgc98jkQS1R4oZnzeExadG7LJq0wkAUEbSrXEM60qseAccGFOgsmE3R4NF+QDLhdvIqOJC97Zm4/kh4q0XxPrrCo+sUTY8ge9FzBnInAtPalJ1MIQdDVEJJzPgHdDvD+ycjKfR5w4W36GBc1iC/BroHgnMZz0Yqer4r1tR7sxMHh4vT+L1FmzKJPBp9PU5CDrIqkpn/1USXolh2EEkZQq020lQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB2960.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(346002)(376002)(136003)(396003)(39860400002)(7696005)(8676002)(54906003)(450100002)(71200400001)(4326008)(53546011)(6506007)(8936002)(33656002)(110136005)(316002)(478600001)(26005)(76116006)(83380400001)(186003)(2906002)(6636002)(86362001)(66556008)(9686003)(66476007)(64756008)(66446008)(66946007)(55016002)(52536014)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: RBHyU9mIMfY1vfSPn5Q1QCGU08S4Kf6sa73ZUY61UGH81ptQeVWtonSwA26Mz8p1R0nhdLV+jEW6cgs/cSb1+FPi0d4JW4ThYAM2vj6sgl36bj9OnKFQGffsESuXnXry3e4icweGZBLVkZmaMgetbksA7UDilio6DCzZ6+OGgN2swHIGT0OzVWX6PFVtWTKWidMDDuYqyljXwPoIjsPv2imdFI+lo5qwVtzav6BXpLm9vKyKnzXWVeIu5pNjPjV5x8kFgbVrSKM43b9qFBaU3kbCsRzR4ZsKlDnIrKHH+OMy3M4joGTeNlW1UfWN9V5qBl8lzAB23Uiuv7DLvoHTZ5i+LABltQduyKaJxHacHWTh/mGh00Ti42zS07RNrqESDJh9gGA3kDxvRFNaZR/78VVS7B9+XcfPYbhiSR9R2NfjqzonKojW+S4TcCBeSvlhdD1xqLDZgEOm9GONWIvmhLD93tWqNk4j8DFJE+ZHgT4= 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: SN6PR11MB2960.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d1cafba-a3e3-4fef-74ef-08d82946f4b9 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2020 05:13:20.1040 (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: yGVegTSxzC35bthrqBetPvtEpQjlJ5vHnD2LEtJGHHPvmbHm1LTIjsK8EsJkOujV4d0pHGfxbOAoC2+j5kTzjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2877 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v5] net/i40e: fix modify the number of qps 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Thanks Qiming, I have updated it and resubmitted the patch. > -----Original Message----- > From: Yang, Qiming > Sent: Thursday, July 16, 2020 12:58 PM > To: Zhang, AlvinX ; Guo, Jia > Cc: Xing, Beilei ; dev@dpdk.org; Zhang, AlvinX > ; stable@dpdk.org > Subject: RE: [dpdk-dev] [PATCH v5] net/i40e: fix modify the number of qps= in VF >=20 >=20 >=20 > > -----Original Message----- > > From: dev On Behalf Of alvinx.zhang@intel.com > > Sent: Thursday, July 16, 2020 12:24 > > To: Guo, Jia > > Cc: Xing, Beilei ; dev@dpdk.org; Zhang, AlvinX > > ; stable@dpdk.org > > Subject: [dpdk-dev] [PATCH v5] net/i40e: fix modify the number of qps > > in VF >=20 > Fix and modify are all verbs, I think you want to fix the queue pair modi= fy > process. >=20 > > From: Alvin Zhang > > > > If a VF request PF to allocate more number of queue pairs, the PF will > > free the queue pairs which have been allocated and reset the VF. So, > > VF should stop to work until all the process is done. This patch > > modify the process of the request queue pairs. To improve efficiency > > and eliminate code redundancy, the promiscuous ops were also updated. > > > > Fixes: c48eb308ed13 ("net/i40e: support VF request more queues") > > Cc: stable@dpdk.org > > > > Signed-off-by: Alvin Zhang > > --- > > > > V2: Update git log and modify codes according to comments. > > V3: All the code was refactored. > > V4, V5: Modify codes according to comments. > > --- > > drivers/net/i40e/i40e_ethdev_vf.c | 104 > > ++++++++++++++++++++----------- > > ------- > > 1 file changed, 54 insertions(+), 50 deletions(-) > > > > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c > > b/drivers/net/i40e/i40e_ethdev_vf.c > > index eca716a..69cab8e 100644 > > --- a/drivers/net/i40e/i40e_ethdev_vf.c > > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > > @@ -91,7 +91,8 @@ static int i40evf_vlan_filter_set(struct rte_eth_dev > > *dev, > > uint16_t vlan_id, int on); > > static int i40evf_vlan_offload_set(struct rte_eth_dev *dev, int > > mask); static void i40evf_dev_close(struct rte_eth_dev *dev); -static > > int i40evf_dev_reset(struct rte_eth_dev *dev); > > +static int i40evf_dev_reset(struct rte_eth_dev *dev); static int > > +i40evf_check_vf_reset_done(struct rte_eth_dev *dev); > > static int i40evf_dev_promiscuous_enable(struct rte_eth_dev *dev); > > static int i40evf_dev_promiscuous_disable(struct rte_eth_dev *dev); > > static int i40evf_dev_allmulticast_enable(struct rte_eth_dev *dev); @@ > > -519,10 > > +520,19 @@ struct rte_i40evf_xstats_name_off { > > > > err =3D i40evf_execute_vf_cmd(dev, &args); > > > > - if (err) > > + if (err) { > > PMD_DRV_LOG(ERR, "fail to execute command " > > "CONFIG_PROMISCUOUS_MODE"); > > - return err; > > + > > + if (err =3D=3D I40E_NOT_SUPPORTED) > > + return -ENOTSUP; > > + > > + return -EAGAIN; > > + } > > + > > + vf->promisc_unicast_enabled =3D enable_unicast; > > + vf->promisc_multicast_enabled =3D enable_multicast; > > + return 0; > > } > > > > static int > > @@ -1081,12 +1091,28 @@ static int i40evf_dev_xstats_get(struct > > rte_eth_dev *dev, > > args.out_size =3D I40E_AQ_BUF_SZ; > > > > rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev); > > + > > err =3D i40evf_execute_vf_cmd(dev, &args); > > - if (err) > > + > > + rte_eal_alarm_set(I40EVF_ALARM_INTERVAL, > > i40evf_dev_alarm_handler, > > +dev); > > + > > + if (err !=3D I40E_SUCCESS) { > > PMD_DRV_LOG(ERR, "fail to execute command > OP_REQUEST_QUEUES"); > > + return err; > > + } > > + > > + /* The PF will issue a reset to the VF when change the number of > > + * queues. The PF will set I40E_VFGEN_RSTAT to COMPLETE first, > > then > > + * wait 10ms and set it to ACTIVE. In this duration, vf may not catch > > + * the moment that COMPLETE is set. So, for vf, we'll try to wait a > > + * long time. > > + */ > > + rte_delay_ms(100); > > + > > + err =3D i40evf_check_vf_reset_done(dev); > > + if (err) > > + PMD_DRV_LOG(ERR, "VF is still resetting"); > > > > - rte_eal_alarm_set(I40EVF_ALARM_INTERVAL, > > - i40evf_dev_alarm_handler, dev); > > return err; > > } > > > > @@ -1514,7 +1540,7 @@ static int i40evf_dev_xstats_get(struct > > rte_eth_dev *dev, > > hw->bus.device =3D pci_dev->addr.devid; > > hw->bus.func =3D pci_dev->addr.function; > > hw->hw_addr =3D (void *)pci_dev->mem_resource[0].addr; > > - hw->adapter_stopped =3D 0; > > + hw->adapter_stopped =3D 1; > > hw->adapter_closed =3D 0; > > > > /* Pass the information to the rte_eth_dev_close() that it should > > also @@ -1610,7 +1636,20 @@ static int eth_i40evf_pci_remove(struct > > rte_pci_device *pci_dev) > > ad->tx_vec_allowed =3D true; > > > > if (num_queue_pairs > vf->vsi_res->num_queue_pairs) { > > - int ret =3D 0; > > + struct i40e_hw *hw; > > + int ret; > > + > > + if (rte_eal_process_type() !=3D RTE_PROC_PRIMARY) { > > + PMD_DRV_LOG(ERR, > > + "For secondary processes, change queue > > pairs is not supported!"); > > + return -ENOTSUP; > > + } > > + > > + hw =3D I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private); > > + if (!hw->adapter_stopped) { > > + PMD_DRV_LOG(ERR, "Device must be stopped > > first!"); > > + return -EBUSY; > > + } > > > > PMD_DRV_LOG(INFO, "change queue pairs from %u to %u", > > vf->vsi_res->num_queue_pairs, > > num_queue_pairs); @@ -2182,68 +2221,32 @@ static int > > eth_i40evf_pci_remove(struct rte_pci_device *pci_dev) > > i40evf_dev_promiscuous_enable(struct rte_eth_dev *dev) { > > struct i40e_vf *vf =3D I40EVF_DEV_PRIVATE_TO_VF(dev->data- > > >dev_private); > > - int ret; > > - > > - ret =3D i40evf_config_promisc(dev, 1, vf->promisc_multicast_enabled); > > - if (ret =3D=3D 0) > > - vf->promisc_unicast_enabled =3D TRUE; > > - else if (ret =3D=3D I40E_NOT_SUPPORTED) > > - ret =3D -ENOTSUP; > > - else > > - ret =3D -EAGAIN; > > > > - return ret; > > + return i40evf_config_promisc(dev, true, > > +vf->promisc_multicast_enabled); > > } > > > > static int > > i40evf_dev_promiscuous_disable(struct rte_eth_dev *dev) { > > struct i40e_vf *vf =3D I40EVF_DEV_PRIVATE_TO_VF(dev->data- > > >dev_private); > > - int ret; > > - > > - ret =3D i40evf_config_promisc(dev, 0, vf->promisc_multicast_enabled); > > - if (ret =3D=3D 0) > > - vf->promisc_unicast_enabled =3D FALSE; > > - else if (ret =3D=3D I40E_NOT_SUPPORTED) > > - ret =3D -ENOTSUP; > > - else > > - ret =3D -EAGAIN; > > > > - return ret; > > + return i40evf_config_promisc(dev, false, > > +vf->promisc_multicast_enabled); > > } > > > > static int > > i40evf_dev_allmulticast_enable(struct rte_eth_dev *dev) { > > struct i40e_vf *vf =3D I40EVF_DEV_PRIVATE_TO_VF(dev->data- > > >dev_private); > > - int ret; > > - > > - ret =3D i40evf_config_promisc(dev, vf->promisc_unicast_enabled, 1); > > - if (ret =3D=3D 0) > > - vf->promisc_multicast_enabled =3D TRUE; > > - else if (ret =3D=3D I40E_NOT_SUPPORTED) > > - ret =3D -ENOTSUP; > > - else > > - ret =3D -EAGAIN; > > > > - return ret; > > + return i40evf_config_promisc(dev, vf->promisc_unicast_enabled, > > true); > > } > > > > static int > > i40evf_dev_allmulticast_disable(struct rte_eth_dev *dev) { > > struct i40e_vf *vf =3D I40EVF_DEV_PRIVATE_TO_VF(dev->data- > > >dev_private); > > - int ret; > > - > > - ret =3D i40evf_config_promisc(dev, vf->promisc_unicast_enabled, 0); > > - if (ret =3D=3D 0) > > - vf->promisc_multicast_enabled =3D FALSE; > > - else if (ret =3D=3D I40E_NOT_SUPPORTED) > > - ret =3D -ENOTSUP; > > - else > > - ret =3D -EAGAIN; > > > > - return ret; > > + return i40evf_config_promisc(dev, vf->promisc_unicast_enabled, > > false); > > } > > > > static int > > @@ -2365,8 +2368,9 @@ static int eth_i40evf_pci_remove(struct > > rte_pci_device *pci_dev) > > * it is a workaround solution when work with kernel driver > > * and it is not the normal way > > */ > > - i40evf_dev_promiscuous_disable(dev); > > - i40evf_dev_allmulticast_disable(dev); > > + if (vf->promisc_unicast_enabled || vf->promisc_multicast_enabled) > > + i40evf_config_promisc(dev, false, false); > > + > > rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev); > > > > i40evf_reset_vf(dev); > > -- > > 1.8.3.1