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 38078A04DD for ; Thu, 19 Nov 2020 07:24:51 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 01E30DED; Thu, 19 Nov 2020 07:24:50 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 82734DED; Thu, 19 Nov 2020 07:24:47 +0100 (CET) IronPort-SDR: ADTkCqtVJs/laS8mOQzuoLfiMEhCvTRZh88sf+wblg66iSB3QP72ZsknVrnc4VBIDpu9W+EBha HyJdqeWruhRQ== X-IronPort-AV: E=McAfee;i="6000,8403,9809"; a="168668180" X-IronPort-AV: E=Sophos;i="5.77,489,1596524400"; d="scan'208";a="168668180" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2020 22:24:46 -0800 IronPort-SDR: JE7cRJTRpas/o352sZYP1iDtwojLQuKKm8Z1wOom3e7ZQ41gv+V5XQmy7yo2vR8hEUygnxOP9t /T3LOZu5Rgbg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,489,1596524400"; d="scan'208";a="359830753" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga004.fm.intel.com with ESMTP; 18 Nov 2020 22:24:46 -0800 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 18 Nov 2020 22:24:45 -0800 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 19 Nov 2020 14:24:43 +0800 Received: from shsmsx601.ccr.corp.intel.com ([10.109.6.141]) by SHSMSX601.ccr.corp.intel.com ([10.109.6.141]) with mapi id 15.01.1713.004; Thu, 19 Nov 2020 14:24:43 +0800 From: "Guo, Jia" To: "Xing, Beilei" , "dev@dpdk.org" CC: "stable@dpdk.org" Thread-Topic: [PATCH] net/i40e: fix conflict with multi-driver Thread-Index: AQHWvXNbPL2dPiS8D0qSVqqyi3OdrKnO9kGA Date: Thu, 19 Nov 2020 06:24:43 +0000 Message-ID: References: <20201119061616.37482-1-beilei.xing@intel.com> In-Reply-To: <20201119061616.37482-1-beilei.xing@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.5.1.3 x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-stable] [PATCH] net/i40e: fix conflict with multi-driver X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 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" Hi, beilei > -----Original Message----- > From: Xing, Beilei > Sent: Thursday, November 19, 2020 2:16 PM > To: dev@dpdk.org > Cc: Guo, Jia ; Xing, Beilei ; > stable@dpdk.org > Subject: [PATCH] net/i40e: fix conflict with multi-driver >=20 Seems that this patch both handle multi-driver and none multi-driver. I am not sure if it need to rename to a better name, you choice. " net/i40e: fix global register recovery"? > From: Beilei Xing >=20 > PMD configures the global register I40E_GLINT_CTL during device > initialization to work around the Rx write back issue. But when a device = is > bound from DPDK to kernel, the global register is not recovered to the > original state, it will cause kernel driver performance drop issue. > This patch fixes this issue. >=20 > Fixes: be6c228d4da3 ("i40e: support Rx interrupt") If the issue is root cause that the miss-pair automask configure and automa= sk clear,=20 do you think it will be better to add one more fixes tag as below?=20 Fixes: 4ab831449a1c ("net/i40e: fix interrupt conflict with multi-driver ") > Cc: stable@dpdk.org >=20 > Signed-off-by: Beilei Xing > --- > drivers/net/i40e/i40e_ethdev.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) >=20 > diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethde= v.c > index f54769c29d..2cb18ecc03 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -763,6 +763,21 @@ static inline void i40e_config_automask(struct > i40e_pf *pf) > I40E_WRITE_REG(hw, I40E_GLINT_CTL, val); } >=20 > +static inline void i40e_clear_automask(struct i40e_pf *pf) { > + struct i40e_hw *hw =3D I40E_PF_TO_HW(pf); > + uint32_t val; > + > + val =3D I40E_READ_REG(hw, I40E_GLINT_CTL); > + val &=3D ~(I40E_GLINT_CTL_DIS_AUTOMASK_PF0_MASK | > + I40E_GLINT_CTL_DIS_AUTOMASK_VF0_MASK); > + > + if (!pf->support_multi_driver) > + val &=3D ~I40E_GLINT_CTL_DIS_AUTOMASK_N_MASK; > + > + I40E_WRITE_REG(hw, I40E_GLINT_CTL, val); } > + > #define I40E_FLOW_CONTROL_ETHERTYPE 0x8808 >=20 > /* > @@ -2741,6 +2756,8 @@ i40e_dev_close(struct rte_eth_dev *dev) > /* Remove all Traffic Manager configuration */ > i40e_tm_conf_uninit(dev); >=20 > + i40e_clear_automask(pf); > + > hw->adapter_closed =3D 1; > return ret; > } > -- > 2.26.2