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 D2227A0C4B; Mon, 4 Oct 2021 04:15:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5ACC941296; Mon, 4 Oct 2021 04:15:27 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id A3CBE40688 for ; Mon, 4 Oct 2021 04:15:25 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10126"; a="311462399" X-IronPort-AV: E=Sophos;i="5.85,344,1624345200"; d="scan'208";a="311462399" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Oct 2021 19:15:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,344,1624345200"; d="scan'208";a="542935885" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga004.fm.intel.com with ESMTP; 03 Oct 2021 19:15:24 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sun, 3 Oct 2021 19:15:24 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.2242.12; Sun, 3 Oct 2021 19:15:24 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.2242.12 via Frontend Transport; Sun, 3 Oct 2021 19:15:24 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.103) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Sun, 3 Oct 2021 19:15:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OJ3G7hRe0w9R6K2NaMFq1RGYIkqkucL4KnmHqbXi8o1AKAATD71pfJOlcWEpa8UmHOP+EFEKeKa3HZCwdix5wtE2TV6ycCeQRHW4p+Xd9mZcWAXrp0Xkwaq+T+Te7/fgW2APMgh/sFVGDFsPzofWlpNtw8SrFbZq3ADYqR9nJnSGVxsMvjlszGGUzRePbDw20NZnFTcC5lTOO0fng6MyMqMz1z2lzaZw1Y3AJyzbTCgvcOZm64XstmyNdrgyaqDppo8Hf2NxClAwdrafv7Ib0sCBUEGGlEiokOLblGeQLrIwA58/5nX6dfP3qylE4we8cJ4HjJjaRHpnsqq2dHjIJw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fGlJTgf3eksBQQBS8R6XlSLhQfWoe23e+6nEAeuuUg8=; b=bUqclCUt8EEekbYfN9ycicFzxEai4+DyBiqtSVUHCGHb75ZmYh0vtS22rRfmWNu4yZFp4mRJyAUtkB0WjhZQNEs6eGo76iY9AishCkSYTLuDOTtlRj1OPATxM4R1GeyOsAI+e1lbAkJqhp5YO0M8CallLQBfneb6mr6p8UTIMNY0E20yUh5Mok43tjYKjd/8/l+PQBSI2nF8GLKpvJVHK57alp64motVLkJt0vgM63UxEwL13se+metJKOmfwKozvLKXFZ9rm5bCjgNbtQ40yf3x/kz8+6ijguIYNAbay5FuFfQO9XLcb4WN2bdNP61xPQJu002xWz+u+Q8WnfyNsQ== 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=fGlJTgf3eksBQQBS8R6XlSLhQfWoe23e+6nEAeuuUg8=; b=n7YOC+EIps0he1aq105qnnfEJLZZUSAcwJ6ZB+niWIStdcbCCBYjNG1umz9Bza+h8duC54UjDNIzfSe23/gOYkGs4P4ly3mEQI7n/3rGQvvo5/4ro+C07bYuG/OvV/dzh7HzxRFzZWsN1WbnnZChAjV4fHSPz35YWnGoCfTBlc4= Received: from MW3PR11MB4587.namprd11.prod.outlook.com (2603:10b6:303:58::7) by MWHPR11MB1695.namprd11.prod.outlook.com (2603:10b6:300:22::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Mon, 4 Oct 2021 02:15:21 +0000 Received: from MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::4d0f:beef:ae28:d933]) by MW3PR11MB4587.namprd11.prod.outlook.com ([fe80::4d0f:beef:ae28:d933%4]) with mapi id 15.20.4566.022; Mon, 4 Oct 2021 02:15:21 +0000 From: "Wu, Jingjing" To: "Nicolau, Radu" , "Xing, Beilei" CC: "dev@dpdk.org" , "Doherty, Declan" , "Sinha, Abhijit" , "Zhang, Qi Z" , "Richardson, Bruce" , "Ananyev, Konstantin" Thread-Topic: [PATCH v4 6/6] net/iavf: add watchdog for VFLR Thread-Index: AQHXtqthDMFwINrRsEORznzLWqCvm6vCG3EQ Date: Mon, 4 Oct 2021 02:15:21 +0000 Message-ID: References: <20210909142428.750634-1-radu.nicolau@intel.com> <20211001095130.3343083-1-radu.nicolau@intel.com> <20211001095130.3343083-7-radu.nicolau@intel.com> In-Reply-To: <20211001095130.3343083-7-radu.nicolau@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 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: dfaf4784-e4d0-42f8-0a81-08d986dcd183 x-ms-traffictypediagnostic: MWHPR11MB1695: 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:4502; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8MpxPNRYYV5eThPTzQoiZtu31R78PZTSVRuCkuZgmpNp4ETPECFyBvmKiToy/qnXKPv0Ke+s39eodvCJBShvool1/wVahi36pB8tnmaqIaGtdm4UIY110UuQ2uaLWSVo+G95PUavN8WikPIfNtrZI2OAj1s756SbaHdpDhp6lijVc98wTXuZfP5gtofh2JrhYotD/RbaCbEjaMgSmIhXu4vutlE+XfQ8YejyEJfN30kW4epTHQktR0UQE3RcIwEGb2Lg9P64Kkaltu5GDfTpF5HGbBu6GCODZtaXnWXJj9+3QE0iu5JxgD44GZUW4es1RWiNcgtl6PCiJDthCVrw1A9Il0NQI55Be16oHNZdB0GGRWv7LywPxjUx0kIqsIgb3rUxB3x9bRFAoRFgZyF2lGIuzqs5+gkNKkV8+LFJXLWtFiW5xS43/eHpuh61f0rG9ivcQORAmLAM786kn2IhfHVgY3EdZ4j+Or8cFrtEqoeZjpPr4jeJpJC4gqqvIHhjPzLsUD0PZc+VH4h+BTaHpf6u2Pgge+aKwaEa4IllK41GqJpor/U1PDPyDjyVH++MW2xbjKgEA1IFjaJ72ts1tG1o5jxpmnns29wQIqR1Es4gfOVGN0yx1+zxEfk8ZiNxd7FQCWR5bqZhoqb/JlD/fxWjyuaQr25MdvsJno75x7051UK91SaXTLuh0O2X3GL37vngxSu3DtAPWJ4FuJJaYQ== 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)(2906002)(6636002)(86362001)(7696005)(8676002)(110136005)(38070700005)(6506007)(54906003)(52536014)(9686003)(53546011)(71200400001)(4326008)(26005)(316002)(76116006)(83380400001)(66946007)(8936002)(5660300002)(107886003)(66556008)(66446008)(64756008)(33656002)(122000001)(66476007)(508600001)(55016002)(38100700002)(186003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?n+bvyu43ec7Fuo/hy3XgJWoQCTNOjiabKsrSJXi8XQvebmEVZDBUUa+OfB1e?= =?us-ascii?Q?abM0LRoFaY4C5bU1zOCirAmNBGeYdaeQTVp6D0e4jy5nAVEc6Q8WOCDTTolV?= =?us-ascii?Q?OYjGFC/ulTE4NhvyfP4o304LyGgtnwzCsOi6dao2dY0f/NKlSDNAKvtU6YpL?= =?us-ascii?Q?ONRIclX/wRIxsNw/S9hF6ZYG95UZ1tu1cP/OD8oC3hzUvD+XJ9LHkLv5SGWE?= =?us-ascii?Q?qyA+C2xoVvuebPjZVB34q2J7srCbAgPPZhLECTzz1mqAfciKnS2pslfame7/?= =?us-ascii?Q?cIFQrfKfXYhQ3HQhMakBU9U0t1Jgd16QgT0dzUMsHSN4qrdj86Q9cQ7hFdoC?= =?us-ascii?Q?hmiXIGGaLS+5nacMGx5YAJa2/3amDHy1pqJV055WQExJxg8cTJh0+NOCO9Vh?= =?us-ascii?Q?WHVQ50SoSVOT8qbfVdUsYloK+jRVEjC+cYoDiyVoVhIWPWJ1jEYBlJhWFDIg?= =?us-ascii?Q?aesrn4411r24cCo/jf7OeLWJcrZ3/kWLwURMxLeu86vQQXs4dGplJb0V6PYF?= =?us-ascii?Q?2las8iiSbodF4O+QIu9TRH6zpkZxgoA9sGsihfKDMAqmMf2thKCjMOpf7cWN?= =?us-ascii?Q?jPSp1SQrXW6be05mZrQDtRIzVLFm+D6XB1ehX/EOibNtEsto2hxhsuc34GTU?= =?us-ascii?Q?9CWCqJWdwLXG7fIm4w8vyRXtEjjxRyLOnFW7rW4V93D6hggV/3pSR6mnPcec?= =?us-ascii?Q?33OWLkHth2yhokRL8+BiC7dvUBqWxgxPuXxYy2DPLVzIY3UzufNKSBG5lnOv?= =?us-ascii?Q?Q+amXZfmKyhlP0kFJTMUV2emm3ZFs3BlaV1A/J9DntoOhG1QU/o2MsKEAlKM?= =?us-ascii?Q?4V3Zva2bBRgz0cvQZEFuKR9sx+qv63L9O1pp+dwFfIZUefq6rmgqimtbcL1O?= =?us-ascii?Q?r3SD1iz2SwDj6So6SFexUxyDAtlvIpvFTarvnAAVd2WpVKbqihtJfVcrRYES?= =?us-ascii?Q?GwsHq5h+dM/REXVP0Orw2RBosY6o6vRNgKVmooicVT/9NaDXaRtXpRxd4k/G?= =?us-ascii?Q?wCLElM/cwk88PD3DOGT8BTfpLGfOz/s4T9yZn0nuXbD/Bl8DGYm6Pl574TH5?= =?us-ascii?Q?+W4OYBIhOdnhYl6xtThYBqV3Cn3VRE7u/uNAnvPTlnx23L4uw4tRIPOiVmwg?= =?us-ascii?Q?VDGjZWJyZxMa7Yjw/8WmSEzBrHAYoPgZeHX3KtnscOGKc7/8N+x8dQuwMtKf?= =?us-ascii?Q?72Lcpk40srRFhjLOlGUhKoH6fTXQK1FX9u4cz4YZmbBlYBC5au2RD/8cVohS?= =?us-ascii?Q?ic/V4/2AvH/iMouy3v6Gh1spXb1HMOimMcAN6Mv7RWNGuznC6ybwW6J5CsKr?= =?us-ascii?Q?14p4jkqzBbsSeL3iVlCuOu7f?= 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: dfaf4784-e4d0-42f8-0a81-08d986dcd183 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2021 02:15:21.3617 (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: 4iD6cCLmjlgA5gmuh1FjyMkUXi+QcJ8dDCmeAct+yQ13FCQd2ycnHbD4uOuIfeSVhM5mlai9BUmN0V5mvKakHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1695 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v4 6/6] net/iavf: add watchdog for VFLR 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: Nicolau, Radu > Sent: Friday, October 1, 2021 5:52 PM > To: Wu, Jingjing ; Xing, Beilei > Cc: dev@dpdk.org; Doherty, Declan ; Sinha, Abhi= jit > ; Zhang, Qi Z ; Richardson= , Bruce > ; Ananyev, Konstantin ; > Nicolau, Radu > Subject: [PATCH v4 6/6] net/iavf: add watchdog for VFLR >=20 > Add watchdog to iAVF PMD which support monitoring the VFLR register. If > the device is not already in reset then if a VF reset in progress is > detected then notfiy user through callback and set into reset state. > If the device is already in reset then poll for completion of reset. >=20 > Signed-off-by: Declan Doherty > Signed-off-by: Radu Nicolau > --- > drivers/net/iavf/iavf.h | 6 +++ > drivers/net/iavf/iavf_ethdev.c | 97 ++++++++++++++++++++++++++++++++++ > 2 files changed, 103 insertions(+) >=20 > diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h > index d5f574b4b3..4481d2e134 100644 > --- a/drivers/net/iavf/iavf.h > +++ b/drivers/net/iavf/iavf.h > @@ -212,6 +212,12 @@ struct iavf_info { > int cmd_retval; /* return value of the cmd response from PF */ > uint8_t *aq_resp; /* buffer to store the adminq response from PF */ >=20 > + struct { > + uint8_t enabled:1; > + uint64_t period_us; > + } watchdog; > + /** iAVF watchdog configuration */ > + > /* Event from pf */ > bool dev_closed; > bool link_up; > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethde= v.c > index aad6a28585..d02aa9c1c5 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -24,6 +24,7 @@ > #include > #include > #include > +#include >=20 > #include "iavf.h" > #include "iavf_rxtx.h" > @@ -239,6 +240,94 @@ iavf_tm_ops_get(struct rte_eth_dev *dev __rte_unused= , > return 0; > } >=20 > + > +static int > +iavf_vfr_inprogress(struct iavf_hw *hw) > +{ > + int inprogress =3D 0; > + > + if ((IAVF_READ_REG(hw, IAVF_VFGEN_RSTAT) & > + IAVF_VFGEN_RSTAT_VFR_STATE_MASK) =3D=3D > + VIRTCHNL_VFR_INPROGRESS) > + inprogress =3D 1; > + > + if (inprogress) > + PMD_DRV_LOG(INFO, "Watchdog detected VFR in progress"); > + > + return inprogress; > +} > + > +static void > +iavf_dev_watchdog(void *cb_arg) > +{ > + struct iavf_adapter *adapter =3D cb_arg; > + struct iavf_hw *hw =3D IAVF_DEV_PRIVATE_TO_HW(adapter); > + int vfr_inprogress =3D 0, rc =3D 0; > + > + /* check if watchdog has been disabled since last call */ > + if (!adapter->vf.watchdog.enabled) > + return; > + > + /* If in reset then poll vfr_inprogress register for completion */ > + if (adapter->vf.vf_reset) { > + vfr_inprogress =3D iavf_vfr_inprogress(hw); > + > + if (!vfr_inprogress) { > + PMD_DRV_LOG(INFO, "VF \"%s\" reset has completed", > + adapter->eth_dev->data->name); > + adapter->vf.vf_reset =3D false; > + } > + /* If not in reset then poll vfr_inprogress register for VFLR event */ > + } else { > + vfr_inprogress =3D iavf_vfr_inprogress(hw); > + > + if (vfr_inprogress) { > + PMD_DRV_LOG(INFO, > + "VF \"%s\" reset event has been detected by watchdog", > + adapter->eth_dev->data->name); > + > + /* enter reset state with VFLR event */ > + adapter->vf.vf_reset =3D true; > + > + rte_eth_dev_callback_process(adapter->eth_dev, > + RTE_ETH_EVENT_INTR_RESET, NULL); > + } > + } > + > + /* re-alarm watchdog */ > + rc =3D rte_eal_alarm_set(adapter->vf.watchdog.period_us, > + &iavf_dev_watchdog, cb_arg); > + > + if (rc) > + PMD_DRV_LOG(ERR, "Failed \"%s\" to reset device watchdog alarm", > + adapter->eth_dev->data->name); > +} > + > +static void > +iavf_dev_watchdog_enable(struct iavf_adapter *adapter, uint64_t period_u= s) > +{ > + int rc; > + > + PMD_DRV_LOG(INFO, "Enabling device watchdog"); > + > + adapter->vf.watchdog.enabled =3D 1; > + adapter->vf.watchdog.period_us =3D period_us; > + > + rc =3D rte_eal_alarm_set(adapter->vf.watchdog.period_us, > + &iavf_dev_watchdog, (void *)adapter); > + if (rc) > + PMD_DRV_LOG(ERR, "Failed to enabled device watchdog"); > +} > + > +static void > +iavf_dev_watchdog_disable(struct iavf_adapter *adapter) > +{ > + PMD_DRV_LOG(INFO, "Disabling device watchdog"); > + > + adapter->vf.watchdog.enabled =3D 0; > + adapter->vf.watchdog.period_us =3D 0; > +} > + > static int > iavf_set_mc_addr_list(struct rte_eth_dev *dev, > struct rte_ether_addr *mc_addrs, > @@ -2448,6 +2537,11 @@ iavf_dev_init(struct rte_eth_dev *eth_dev) >=20 > iavf_default_rss_disable(adapter); >=20 > + > + /* Start device watchdog, set polling period to 500us */ > + iavf_dev_watchdog_enable(adapter, 500); > + Besides checking VFGEN_RSTAT, there is a process to handle VIRTCHNL_OP_EVEN= T from PF. What is the change for? Any scenario which VIRTCHNL_OP_EVENT d= oesn't cover?=20 And how is the 500us been determined?=20