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 6284DA054F; Tue, 18 Feb 2020 10:21:35 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 950AB1D73A; Tue, 18 Feb 2020 10:21:34 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 63C1F1D735; Tue, 18 Feb 2020 10:21:32 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Feb 2020 01:21:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,456,1574150400"; d="scan'208";a="268689920" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by fmsmga002.fm.intel.com with ESMTP; 18 Feb 2020 01:21:30 -0800 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX105.amr.corp.intel.com (10.22.225.132) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Feb 2020 01:21:28 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 18 Feb 2020 01:21:29 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bVc/E0z5fxoCDbNiIXSrq9Be5TE/RQIuAF9ObZJW04QUptj/4Dqj9htNsrk7X85kfjv4JX6z1zhLE/Q5IwALTB8aL9DfzaMrUMqtBDrvDlEARzZnrgTOi6rlCDgBCf46i8hEq8Px+LVr3Mr8kGDf7bHKCRUqZUTLRkvEJDfUd0zE5Y4PP8Kye6rAShFPm2Pn6Mje5SViKyAdUZBmBmEVu/vLqo7uYF7rSPv+M1GA2j3WygzAdSu4qF2bjyAg9uoRCKZxj0bnsNRjqa/kHYEzaesJwEJtYDabGxFWtsDtAlSOX6sktfQ5wnwbhoZdTWYH7pBU1C7fJ2Li9zcTUlDiKw== 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=zh23kGFgDmxD91pNLOYt1cIRGT5k3QDnKhtGsllsK7c=; b=nIJGTd/iI2Ik8gfWIMcYMt4o9WXIGINVg3Z3gYIIma0BZux72xktv1bRd/1g/cngCzEgeuAIoT/jCgIcn2Sf1VblEFVQXP0uxhgMddhpAm94+krsKAEfXiuftByYT0iViw2TekuiGsW2UJhTpmAP2c/3cA2kj9BJGt6xw5RIKJcgYseGwHWAnSfgCPKINtzcQF5Ru4G1kzNljOuJ0JWpYWDpqmOwkLT4SmWT1xSi65ONbKL7xl1psK6lb25O7SM4HbtqxzWgdkHJ+N4IgyS5ABd9lY9UYTwGgsfX1pLNPdJAyxGG9JonMGiLJVmuEittkL61ACBI41XWwFQF80vU0g== 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=zh23kGFgDmxD91pNLOYt1cIRGT5k3QDnKhtGsllsK7c=; b=coC8vJ4rmzo3ew4NYwTZbOmi2e6fUrac6kSUYWNo7GYFROnwVEM5YMycAC3vTy5jC4D+dJeExojAQlgIj4AIwgEf6TZomTcldNYZIwa1hpVA9dkHHAW53rEtrNQBY1EZdC53NLou5y3j4lCtQVQUikThwbtTVLUgVvyZSY9iItc= Received: from BYAPR11MB3093.namprd11.prod.outlook.com (20.177.225.156) by BYAPR11MB2534.namprd11.prod.outlook.com (52.135.225.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.22; Tue, 18 Feb 2020 09:21:27 +0000 Received: from BYAPR11MB3093.namprd11.prod.outlook.com ([fe80::f4db:19e9:6baf:371]) by BYAPR11MB3093.namprd11.prod.outlook.com ([fe80::f4db:19e9:6baf:371%7]) with mapi id 15.20.2729.031; Tue, 18 Feb 2020 09:21:27 +0000 From: "Konieczny, TomaszX" To: "Sun, GuinanX" , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "Yang, Qiming" , "Zhang, Qi Z" , "Sun, GuinanX" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v4] net/ixgbe: fix flow ctrl mode setting Thread-Index: AQHV5g4lKyAsPfBLgU2Mig0jDQPWZaggrIRA Date: Tue, 18 Feb 2020 09:21:27 +0000 Message-ID: References: <20191219044356.30762-1-guinanx.sun@intel.com> <20200218033931.81821-1-guinanx.sun@intel.com> In-Reply-To: <20200218033931.81821-1-guinanx.sun@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: spf=none (sender IP is ) smtp.mailfrom=tomaszx.konieczny@intel.com; x-originating-ip: [134.191.221.74] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8d849ae4-60b7-4513-12cc-08d7b453ee97 x-ms-traffictypediagnostic: BYAPR11MB2534: 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:1443; x-forefront-prvs: 031763BCAF x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(396003)(366004)(376002)(39860400002)(136003)(189003)(199004)(33656002)(186003)(66556008)(64756008)(9686003)(66946007)(52536014)(55016002)(26005)(66476007)(316002)(66446008)(5660300002)(76116006)(110136005)(2906002)(54906003)(478600001)(6506007)(71200400001)(86362001)(8676002)(81156014)(4326008)(7696005)(81166006)(450100002)(8936002); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR11MB2534; H:BYAPR11MB3093.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Posu35Hrayyc6WdrskpCDdy07mkd2ApJibsl5pDYoHANfxWjyUO4bzQB8ptzoTMxHs3BNRMlpmnBlK2IiQudhLeTrdqW0cq+QpXkXgSUIvlLB/0+7ZydZYMqIrSA5HwHJXR1hfQ+8sl1Ej3CyFH6dR2LCuq8JEdCMVoA11NpRRj767vt4OB41LrhCTPGwZKhZOd678r/NSX2s7PMg8wOrduNcsEpr2z6keNS1t3k3ewsUpfvQpQQJTIA1+nQTRNn0+0Q33J+1dWn6jjpGfl+v3nRGsND/y9vwqKmLEdTTZVb+UNi64OpVA/IERfnG66Ntyo2KZLD6Qbloa096LBIfUlq5/UH/1Lzj3wbfWngIZ8Qqrlj8QI83aVlpdUWqVR2xXIqv8dfFxjAwaBW7Uk7EqK8Bux3sDokvoyEwWYJOY+bE011ZPg6LQrksJLgJTpv x-ms-exchange-antispam-messagedata: YltpQfVm6PW5WEPTXEqpYCmhMS0U45weP7TX7x/b6fSfGAszPB79Wwm3KWaOHXk48tcn+jhBf34o+pySRmWI3JiGy+5ldrbOZ25WVK6TDqeLo0N2m5RJR8U3JUGSjB1efGXzTl2kg8BF9jUPwIK+lQ== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8d849ae4-60b7-4513-12cc-08d7b453ee97 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Feb 2020 09:21:27.1809 (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: uRBvZQa9vrA7D/CyK3F1T0mn0TQMtAxdT2Gua+8G/2nL4it9MPgwGTyB6r+1iQW5MM93yd9RA1EHkYPy66QzGuZQH/tUBzpoPKtIyMDzMRE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2534 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v4] net/ixgbe: fix flow ctrl mode setting 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" Patch fixes reported issue. Tested-by: Tomasz Konieczny Regards Tomasz Konieczny --------------------------------------------------------------------- Intel Corporation (UK) Ltd. Co. Reg. #1134945 Pipers Way, Swindon SN3 1RJ >-----Original Message----- >From: dev On Behalf Of Guinan Sun >Sent: 18 February 2020 04:40 >To: dev@dpdk.org >Cc: Lu, Wenzhuo ; Yang, Qiming >; Zhang, Qi Z ; Sun, GuinanX >; stable@dpdk.org >Subject: [dpdk-dev] [PATCH v4] net/ixgbe: fix flow ctrl mode setting > >When the port starts, the hw register is reset first, and then the require= d >parameters are set again. >If the parameters to be used are not set after resetting the register, a r= ead >register error will occur. This patch is used to fix the problem. > >Fixes: af75078fece3 ("first public release") >Cc: stable@dpdk.org > >Signed-off-by: Guinan Sun >--- >v4: changes >* rebase to dpdk-next-net-intel > >v3: changes >* wrap duplication code into a function >* Modify checkpatch warnings > >v2: changes >* Modify the initial value of requested_mode and current_mode >--- > drivers/net/ixgbe/ixgbe_ethdev.c | 76 +++++++++++++++++++++----------- >drivers/net/ixgbe/ixgbe_ethdev.h | 1 + > 2 files changed, 51 insertions(+), 26 deletions(-) > >diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_et= hdev.c >index 3aab24e82..08b4cc689 100644 >--- a/drivers/net/ixgbe/ixgbe_ethdev.c >+++ b/drivers/net/ixgbe/ixgbe_ethdev.c >@@ -1176,8 +1176,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void >*init_params __rte_unused) > memset(dcb_config, 0, sizeof(struct ixgbe_dcb_config)); > ixgbe_dcb_init(hw, dcb_config); > /* Get Hardware Flow Control setting */ >- hw->fc.requested_mode =3D ixgbe_fc_full; >- hw->fc.current_mode =3D ixgbe_fc_full; >+ hw->fc.requested_mode =3D ixgbe_fc_none; >+ hw->fc.current_mode =3D ixgbe_fc_none; > hw->fc.pause_time =3D IXGBE_FC_PAUSE; > for (i =3D 0; i < IXGBE_DCB_MAX_TRAFFIC_CLASS; i++) { > hw->fc.low_water[i] =3D IXGBE_FC_LO; >@@ -2538,6 +2538,39 @@ ixgbe_set_vf_rate_limit(struct rte_eth_dev *dev, >uint16_t vf, > return 0; > } > >+static int >+ixgbe_flow_ctrl_enable(struct rte_eth_dev *dev, struct ixgbe_hw *hw) { >+ struct ixgbe_adapter *adapter =3D dev->data->dev_private; >+ int err; >+ uint32_t mflcn; >+ >+ err =3D ixgbe_fc_enable(hw); >+ >+ /* Not negotiated is not an error case */ >+ if (err =3D=3D IXGBE_SUCCESS || err =3D=3D IXGBE_ERR_FC_NOT_NEGOTIATED) = { >+ /* >+ *check if we want to forward MAC frames - driver doesn't >+ *have native capability to do that, >+ *so we'll write the registers ourselves >+ */ >+ >+ mflcn =3D IXGBE_READ_REG(hw, IXGBE_MFLCN); >+ >+ /* set or clear MFLCN.PMCF bit depending on configuration */ >+ if (adapter->mac_ctrl_frame_fwd !=3D 0) >+ mflcn |=3D IXGBE_MFLCN_PMCF; >+ else >+ mflcn &=3D ~IXGBE_MFLCN_PMCF; >+ >+ IXGBE_WRITE_REG(hw, IXGBE_MFLCN, mflcn); >+ IXGBE_WRITE_FLUSH(hw); >+ >+ return 0; >+ } >+ return err; >+} >+ > /* > * Configure device link speed and setup link. > * It returns 0 on success. >@@ -2664,6 +2697,12 @@ ixgbe_dev_start(struct rte_eth_dev *dev) > > ixgbe_restore_statistics_mapping(dev); > >+ err =3D ixgbe_flow_ctrl_enable(dev, hw); >+ if (err < 0) { >+ PMD_INIT_LOG(ERR, "enable flow ctrl err"); >+ goto error; >+ } >+ > err =3D ixgbe_dev_rxtx_start(dev); > if (err < 0) { > PMD_INIT_LOG(ERR, "Unable to start rxtx queues"); @@ -2900,6 >+2939,8 @@ ixgbe_dev_stop(struct rte_eth_dev *dev) > > adapter->rss_reta_updated =3D 0; > >+ adapter->mac_ctrl_frame_fwd =3D 0; >+ > hw->adapter_stopped =3D true; > } > >@@ -4718,10 +4759,10 @@ static int > ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_c= onf) { > struct ixgbe_hw *hw; >+ struct ixgbe_adapter *adapter =3D dev->data->dev_private; > int err; > uint32_t rx_buf_size; > uint32_t max_high_water; >- uint32_t mflcn; > enum ixgbe_fc_mode rte_fcmode_2_ixgbe_fcmode[] =3D { > ixgbe_fc_none, > ixgbe_fc_rx_pause, >@@ -4754,31 +4795,14 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struc= t >rte_eth_fc_conf *fc_conf) > hw->fc.low_water[0] =3D fc_conf->low_water; > hw->fc.send_xon =3D fc_conf->send_xon; > hw->fc.disable_fc_autoneg =3D !fc_conf->autoneg; >+ adapter->mac_ctrl_frame_fwd =3D fc_conf->mac_ctrl_frame_fwd; > >- err =3D ixgbe_fc_enable(hw); >- >- /* Not negotiated is not an error case */ >- if ((err =3D=3D IXGBE_SUCCESS) || (err =3D=3D >IXGBE_ERR_FC_NOT_NEGOTIATED)) { >- >- /* check if we want to forward MAC frames - driver doesn't have >native >- * capability to do that, so we'll write the registers ourselves */ >- >- mflcn =3D IXGBE_READ_REG(hw, IXGBE_MFLCN); >- >- /* set or clear MFLCN.PMCF bit depending on configuration */ >- if (fc_conf->mac_ctrl_frame_fwd !=3D 0) >- mflcn |=3D IXGBE_MFLCN_PMCF; >- else >- mflcn &=3D ~IXGBE_MFLCN_PMCF; >- >- IXGBE_WRITE_REG(hw, IXGBE_MFLCN, mflcn); >- IXGBE_WRITE_FLUSH(hw); >- >- return 0; >+ err =3D ixgbe_flow_ctrl_enable(dev, hw); >+ if (err < 0) { >+ PMD_INIT_LOG(ERR, "ixgbe_flow_ctrl_enable =3D 0x%x", err); >+ return -EIO; > } >- >- PMD_INIT_LOG(ERR, "ixgbe_fc_enable =3D 0x%x", err); >- return -EIO; >+ return err; > } > > /** >diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_et= hdev.h >index 5089347a7..b8df75657 100644 >--- a/drivers/net/ixgbe/ixgbe_ethdev.h >+++ b/drivers/net/ixgbe/ixgbe_ethdev.h >@@ -511,6 +511,7 @@ struct ixgbe_adapter { > * mailbox status) link status. > */ > uint8_t pflink_fullchk; >+ uint8_t mac_ctrl_frame_fwd; > rte_atomic32_t link_thread_running; > pthread_t link_thread_tid; > }; >-- >2.17.1