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 81452A0524; Fri, 6 Nov 2020 03:59:09 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 27FB8126B; Fri, 6 Nov 2020 03:59:08 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id BFA65F90 for ; Fri, 6 Nov 2020 03:59:05 +0100 (CET) IronPort-SDR: xzSOIS/88+7UgDc1Lj6yST+dPulQ6hIRbaPdkEolMmAV3PfgwMU7VtY9ABp8v1Fomreqm2g4Bp 7KYmQh+S3T/Q== X-IronPort-AV: E=McAfee;i="6000,8403,9796"; a="231122002" X-IronPort-AV: E=Sophos;i="5.77,454,1596524400"; d="scan'208";a="231122002" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2020 18:59:03 -0800 IronPort-SDR: v7pMtpY2C3frzXOwgAqEj699VxXB6a7JJjUStPRz3x+ihveBdw5JnSFWqXPvAL7DhpyE4SyAqg uzy5MG2rLlJw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,454,1596524400"; d="scan'208";a="529657840" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga005.fm.intel.com with ESMTP; 05 Nov 2020 18:59:03 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 5 Nov 2020 18:59:03 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 5 Nov 2020 18:59:01 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.1713.5 via Frontend Transport; Thu, 5 Nov 2020 18:59:01 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.173) 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; Thu, 5 Nov 2020 18:59:01 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PI5Z2JNQ+RoPQAnaxvM445qwAay1Nj2a9G/clxCNENBZYQoTwKHu7PhRWg9ZZRwSF5rYUCab8PklnvhQstzWVO5KEadiDFO99qKDgvM/q1d64Mg0rQfcSx5OTnZ5mQbbrk1qaaHzrYfPc5L3Z23ONYdYRGYhZU5vxuvfLMGCJDZKLKYlpWAFXnh2iD1pxeOqQKHDYEjhrYmcmHWyEgygRyyNxEoWQyHX+euAW/CeYrSptyejvF7tvEyM2HurGqI8xDfkbJjch/Wi+JWgtwFSI2esKZU2wb/fI7Byln5QSc5SyXw8qUNB6a7+UeIlDPkjuch2C7O6g//oMg8IK4LisA== 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=BWGq2NjPpjGf7L6NvNjzuC/DJ5s2DXqFZyu1wvB2gKA=; b=YiOYCJjUn5FIGeMQ7CZ4aEbbzGe4/LrKR9y/LvgRvhH77VQ9iYEFvQiZra2FKpEinhosDGAYLtyoOedhZq54uiQeF5wwe1qaqw5qfyx3tgCWxTYDJEnLSJ4GkOV7V0+LMcFRqn5WT3sZkMqVnhk7uhCyCcG56OHB8yesfWkUKJZgI45mxc++VRsYdH7QCxHqe2A/xTHFl5/826L+6WGX8QGk9fiZjAdUyY8r2pDFaWPe1PV29fFcg41a9dw3s8V2Mq+d/5BKuBjJ3c6G4NmoGN5elwmgigauZ01OAAmXJMInqLqmSndPsHN7TjdVx/imryzll4BRSDHfm7v7cr87Sg== 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=BWGq2NjPpjGf7L6NvNjzuC/DJ5s2DXqFZyu1wvB2gKA=; b=J2Z26samVzK08mygPfOHHrw6LiUGYcNGdtg0/TrAABk5rYPf+PvP7fK+ow7/VlQ4Lh3WK+WqkzHBUuZJmR0lZ+NGNx4PLmdXa5gOKt7nJE5xnWEx5A98JTZCtSwgFAnaUICiXGN4dvVAS3Cjl8AGZXlfs3xbCPRYM7Vb7c4XFpg= Received: from MN2PR11MB3807.namprd11.prod.outlook.com (2603:10b6:208:f0::24) by MN2PR11MB3678.namprd11.prod.outlook.com (2603:10b6:208:f8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.21; Fri, 6 Nov 2020 02:58:59 +0000 Received: from MN2PR11MB3807.namprd11.prod.outlook.com ([fe80::4dc9:358a:cd2e:45d6]) by MN2PR11MB3807.namprd11.prod.outlook.com ([fe80::4dc9:358a:cd2e:45d6%6]) with mapi id 15.20.3499.032; Fri, 6 Nov 2020 02:58:53 +0000 From: "Xing, Beilei" To: "Yang, SteveX" , "dev@dpdk.org" CC: "Yang, Qiming" , "Wu, Jingjing" , "Yang, SteveX" Thread-Topic: [PATCH v1] net/iavf: fix reset VF doesn't notify PF to reset Thread-Index: AQHWs055AEjoB+MQgEyVFIs8z0oaEqm6aDdg Date: Fri, 6 Nov 2020 02:58:52 +0000 Message-ID: References: <20201105083216.38300-1-stevex.yang@intel.com> In-Reply-To: <20201105083216.38300-1-stevex.yang@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-originating-ip: [192.55.46.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: af0a75a7-728e-403b-adb0-08d881ffe4f8 x-ms-traffictypediagnostic: MN2PR11MB3678: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:400; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rb3dlM1xz34bXO+Cuk+QP5MnymGaeLra8EW3YXz27FyWUSAoZroFAt95m8+8nmMXM9KfEBksmJGqpIeI6uq0nH2wnAElgirEO3K4ZCrulJRMg3wr0BpNrWf8vS8IMhmq2R5XvawSIJfEs6V2lizc0gUirfqzGMLcxK0f3dbVH7y9K6PL/AXfnWft6/znnMNIu+PHV4JUDn98aRbGyMvWYQLY2SqGjWR5akhtMqGM0BkR7kBckrTRHLnawW5H8a/uPODMmjYpfbo+t91M/v8yk7soIQysBBYLUxDyjcv/GeyMpSb8JuwE4bBQgk8SgM7LOFeKz4ywrNdE98/jpVSU7A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB3807.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(366004)(396003)(39860400002)(136003)(6506007)(9686003)(186003)(55016002)(107886003)(86362001)(7696005)(53546011)(71200400001)(26005)(478600001)(76116006)(316002)(8676002)(2906002)(64756008)(5660300002)(8936002)(66946007)(4326008)(110136005)(52536014)(66446008)(54906003)(33656002)(83380400001)(66476007)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: T+XLB4qlckYvXlbsw1QvOsbxLoOi4PwAnlOHGxgS5OAZ3fuOc/Lzg9FuOII1894TELJfvvpVkNshqpsmEUWNEWLp/+qIK37HrxAJCNkOgyc2cqpwwZWZjEl4M59m0kTxim5j83BZipTmXCiiwwFjAevFGiGS20NTxCLStDOMUeC31TnV8cbbW/a44MDciQsAYqQMp7qfrkjf7G3o6DM0K4RXKphHMKF731mr02IbyNH21CgmX9ccOIXWZuIwI9z6nWkt9ABlgGY7DeC+DQxq9ik8b7mGK7O4b4CXrtLJEUE2hmbX8Z5rQK/pOlUDwy3O9gETwjDXxNIdgk2tlgk1UxzcLY6dv5/p9st+Bx8Jajj3cBcagPTIhghUsnHfvwIe31kYTbxlhQ057v3pugxYfcHZdVXc1yYlrelS1rHdnKQXKsNGC7elCD5ktlw4rqFw1U7DHTomkIE0wQQhFfq8kKOPDhqiHOjLuBQLp+5vtyiG5YgwWCxsG7RXdQfw+M0kj0Zn57Rn3WgSUdzKOmsIJD/TjSexJWrj32SnGwi5Sjx5gHx9RX3c6DtUl6LdQaSdDmL8OwVuEfWY3FTU6OAl4o5rhebRhNvvqvTSJmTtY5dzKbd68wKfzEz/VGHS/ur957Fhr22+hucKaRqOkk7iFA== 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: MN2PR11MB3807.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af0a75a7-728e-403b-adb0-08d881ffe4f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2020 02:58:52.9902 (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: p8fb5GQ6f2F11FXtHbmVaY+bLNsf0RI2PJk+6EBJrXXpqAFHH3ScsQJx9M+Y4byCd4FU1wiLzIqOQd0JcwYX8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3678 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1] net/iavf: fix reset VF doesn't notify PF to reset 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" > -----Original Message----- > From: Steve Yang > Sent: Thursday, November 5, 2020 4:32 PM > To: dev@dpdk.org > Cc: Yang, Qiming ; Xing, Beilei > ; Wu, Jingjing ; Yang, Stev= eX > > Subject: [PATCH v1] net/iavf: fix reset VF doesn't notify PF to reset >=20 > When VF closed, the VF should notify PF to close/reset relative resources= from > PF side. >=20 > Check the VF RSS offload flag and ignore relative operation when iavf has= h > uninit to avoid reset/close error. Seems there're 2 bug fix in the patch, it's better to split. Is the fix ported from i40evf? For vf_reset, I think there's another patch needed backport: commit 0eaa1f8= c75311b96d269a0195b80e80d6c27e83c >=20 > Fixes: 22b123a36d07 ("net/avf: initialize PMD") >=20 > Signed-off-by: Steve Yang > --- > drivers/common/iavf/iavf_prototype.h | 1 + > drivers/common/iavf/version.map | 1 + > drivers/net/iavf/iavf_ethdev.c | 48 +++++++++++++++++++++++++++- > drivers/net/iavf/iavf_hash.c | 9 ++++-- > 4 files changed, 55 insertions(+), 4 deletions(-) >=20 > diff --git a/drivers/common/iavf/iavf_prototype.h > b/drivers/common/iavf/iavf_prototype.h > index f34e77db0f..3998d26dc0 100644 > --- a/drivers/common/iavf/iavf_prototype.h > +++ b/drivers/common/iavf/iavf_prototype.h > @@ -83,6 +83,7 @@ void iavf_destroy_spinlock(struct iavf_spinlock *sp); > __rte_internal void iavf_vf_parse_hw_config(struct iavf_hw *hw, > struct virtchnl_vf_resource *msg); > +__rte_internal > enum iavf_status iavf_vf_reset(struct iavf_hw *hw); __rte_internal enu= m > iavf_status iavf_aq_send_msg_to_pf(struct iavf_hw *hw, diff --git > a/drivers/common/iavf/version.map b/drivers/common/iavf/version.map > index e0f117197c..6c1427cca4 100644 > --- a/drivers/common/iavf/version.map > +++ b/drivers/common/iavf/version.map > @@ -7,6 +7,7 @@ INTERNAL { > iavf_set_mac_type; > iavf_shutdown_adminq; > iavf_vf_parse_hw_config; > + iavf_vf_reset; >=20 > local: *; > }; > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethde= v.c > index 7e3c26a94e..e2498a184e 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -1780,6 +1780,34 @@ iavf_init_proto_xtr(struct rte_eth_dev *dev) > } > } >=20 > +static int > +iavf_reset_vf(struct iavf_hw *hw) > +{ > + int ret; > + if (iavf_vf_reset(hw) !=3D IAVF_SUCCESS) { > + PMD_INIT_LOG(ERR, "Reset VF NIC failed"); > + return -1; > + } > + /** > + * After issuing vf reset command to pf, pf won't necessarily > + * reset vf, it depends on what state it exactly is. If it's not > + * initialized yet, it won't have vf reset since it's in a certain > + * state. If not, it will try to reset. Even vf is reset, 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(200); > + > + ret =3D iavf_check_vf_reset_done(hw); > + if (ret) { > + PMD_INIT_LOG(ERR, "VF is still resetting"); > + return ret; > + } > + > + return 0; > +} > + > static int > iavf_init_vf(struct rte_eth_dev *dev) > { > @@ -1814,6 +1842,24 @@ iavf_init_vf(struct rte_eth_dev *dev) > goto err; > } >=20 > + /* Reset VF and wait until it's complete */ > + if (iavf_reset_vf(hw)) { > + PMD_INIT_LOG(ERR, "reset NIC failed"); > + goto err_aq; > + } > + > + /* VF reset, shutdown admin queue and initialize again */ > + if (iavf_shutdown_adminq(hw) !=3D IAVF_SUCCESS) { > + PMD_INIT_LOG(ERR, "iavf_shutdown_adminq failed"); > + goto err; > + } > + > + iavf_init_adminq_parameter(hw); > + if (iavf_init_adminq(hw) !=3D IAVF_SUCCESS) { > + PMD_INIT_LOG(ERR, "init_adminq failed"); > + goto err; > + } > + > vf->aq_resp =3D rte_zmalloc("vf_aq_resp", IAVF_AQ_BUF_SZ, 0); > if (!vf->aq_resp) { > PMD_INIT_LOG(ERR, "unable to allocate vf_aq_resp memory"); > @@ -2050,7 +2096,7 @@ iavf_dev_close(struct rte_eth_dev *dev) >=20 > iavf_flow_flush(dev, NULL); > iavf_flow_uninit(adapter); > - > + iavf_reset_vf(hw); > /* > * disable promiscuous mode before reset vf > * it is a workaround solution when work with kernel driver diff --git > a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index > 8a5a6bb5a4..d3e9218f75 100644 > --- a/drivers/net/iavf/iavf_hash.c > +++ b/drivers/net/iavf/iavf_hash.c > @@ -1093,10 +1093,13 @@ iavf_hash_uninit(struct iavf_adapter *ad) > if (vf->vf_reset) > return; >=20 > - if (iavf_hash_default_set(ad, false)) > - PMD_DRV_LOG(ERR, "fail to delete default RSS"); > + if (vf->vf_res && > + vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_ADV_RSS_PF) { > + if (iavf_hash_default_set(ad, false)) > + PMD_DRV_LOG(ERR, "fail to delete default RSS"); >=20 > - iavf_unregister_parser(&iavf_hash_parser, ad); > + iavf_unregister_parser(&iavf_hash_parser, ad); > + } > } >=20 > static void > -- > 2.17.1