From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20047.outbound.protection.outlook.com [40.107.2.47]) by dpdk.org (Postfix) with ESMTP id 124DF2B92 for ; Fri, 27 Jul 2018 04:11:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Wi/ew+NSji0Q2YH9YUnl5fpR+lzqWplSCr2AnNHRRJ8=; b=a6CRKuy/Pl6t2ysE/mrsiWZqSmK6qqNgJQ5/39DacsUPGV9BudGmcUlih1TIxioGhKrc6AFYknxl5zCQNmXHQc4jGPld06FnmcvurJcw+IZ9vKPBjdkhLmiMEv+HW4J92DG6owUfkenW+BnHqucpHncgU9vRbZYBkPWzcZyGRI4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by HE1PR0501MB2041.eurprd05.prod.outlook.com (2603:10a6:3:35::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.21; Fri, 27 Jul 2018 02:11:17 +0000 From: Yongseok Koh To: Haiyue Wang Cc: Qi Zhang , dpdk stable Date: Thu, 26 Jul 2018 19:09:19 -0700 Message-Id: <20180727021019.37388-23-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180727021019.37388-1-yskoh@mellanox.com> References: <20180727021019.37388-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: DM6PR08CA0022.namprd08.prod.outlook.com (2603:10b6:5:80::35) To HE1PR0501MB2041.eurprd05.prod.outlook.com (2603:10a6:3:35::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6d89b448-e881-4176-4c8b-08d5f3663d37 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0501MB2041; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 3:tDUGhsoFEY7vpwNR/wl9A5uYtl+iH26DscKfS3CRkADaDJGC8V6CSbU4rLmxKcm9fA8UYwpHqJjHszycazRdT2B1Y4J3juQ4H0vQK3sNRSzDAOrqr5XOCsZ1C+pruJ7ASlgZz5rrPPojm+SgvTgKKMYmBMWUFJ/3nlTi/7Mx4SPn4PloUW8M0geDxj4SI+4/sFUewCYXuUA6vlArseRjiDiL4nRrOQ356GjzmJWc4R7jr7+hny7qGbS5vX1xEYKW; 25:7pM3LYniJd3MtHV1T+Ds5zatywGVDgfWIqhLU1AgfvhzYK7He3hxnrpZG4gDhl/1VITEl/D8mopCCoEX044L7NXFCswuZ0l5oG3zndwVA46F51Rx+1eCpmbrKSrEQ5bt2ZFxnN4qJwVZGbyzLLMAbHGjKXUGLU7B6rqa1CxwRRWGxD8dTnrYVdpEB8D28XdIjLksIxyT+hpEwCIkEA3XxgP8glPSxJw2cGPtbb+uAaFeImczSKkcwotdfWB237N5hb3RSb9fui8UWSLfOMLa0pPzbm5L4kiRZFkzsdSSg0GD9gIRsew6H6XpnNunrz35IKHtuNNuu2vk0ZEbvOwsag==; 31:vmL8kmJaey4/1E5w1u7nxl+liKp2y5CPqisx4+O2YvODR72qYqLL/g+N648CHeyY9EG3Luaz3XjGxOUD7FRhn928mpWUNzL3g5MpoiKiP/3YIVl7kCwUFQP0fH+wgK6wPqWJirMs81ZEqmqf4JeAIRvW8JXWv3CieQBmxvYXRHwmmNNJLcHnt0vRi2FVY98m7LEgAKXUWKrcLA3qiEi2evI6gHHIYx/JI/9f2iW4Shw= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2041: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 20:UZ5UgfCpwO85roNjF081ZFrVsm48M9nyaTsMbsHEu3zyrIrx/9ks6L3lGW7JcDwJ0TaowrDlCvIecBZ8w6h6/ZXt/hg03gFWMR7sDx/KxJB6nWfP7wwUY2ruVXvry30vyoZ+cXnN1o1zzfelq/Fesa/9LxFlTXcHsHRvHqyMfgQTQWWgxQZnNkBspETDWk43m/cIQcthafuqvnPUh76YSmnqqDRd8wsAhGFUnqX0QZY1GfsoGMRWjDheOajHPeqSXkszzEVcoDkoXacIHGgckrO+bD8uJGi+aWaZfEcML9WyFiZbbqY2ovONP/8OgoT3Qw3hMFgXcDdJ3+m7kNdvUF5LNmXcWmdeJ6ZCoXEQMH/GxemvkZAMqWN1gNsLh/TPmv0KYPkkyfBLDTkjxw3X+DndhUWYxM9kRqSERpQx+C3tbthRWE84f+2bLcsCP2yKXMFn4Zw1TsAjMqMrPB7Jf7OMuKioUmVUewXoRh59AuoRsaO3MYtNjBK2mlo6Ra/6; 4:OY7qCPHaYZnfwFfzvzMpwXZphEjeoxocSWmLGXtH9Uxum+zDlXFbVSgKAzLmic95+wcBPiwj3ZcdOUdjNjtAGd+HgQJo837W59utS9ni2NILXuVyhwxldZ4yGo0DpuvV/pNK/3wWtQUk/1gD/vin53+VmwfoGWk6hSU+XXtmn5e6ALcSDQyME8rGvjOVKPt0HwHr8X5t1Nb88e0ZjfbkbwyiZCP1mJQ/E4aeKAbbLdcnyx7drf6teh4VxlsVj+1lSUc17N8l9hVjCIevcnmcQvQN50mflzo3oQ9j1H7MDyaevB43kdtj1hxqRnQzJ05r X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231311)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(6072148)(201708071742011)(7699016); SRVR:HE1PR0501MB2041; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2041; X-Forefront-PRVS: 07467C4D33 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(136003)(376002)(396003)(346002)(69234005)(28163001)(189003)(199004)(6306002)(55016002)(53376002)(36756003)(4326008)(76176011)(2906002)(105586002)(26005)(2616005)(25786009)(956004)(486006)(21086003)(386003)(966005)(106356001)(51416003)(7736002)(86362001)(53546011)(575784001)(50466002)(16526019)(48376002)(1076002)(52116002)(8936002)(54906003)(5660300001)(11346002)(3846002)(16586007)(446003)(66066001)(81166006)(68736007)(316002)(69596002)(7696005)(6116002)(97736004)(53936002)(476003)(81156014)(50226002)(47776003)(6916009)(186003)(1720100001)(8676002)(305945005)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2041; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2041; 23:t3LrYTD3WSVZVH1OHIyYP2pU6+3Ajwnr6ZUcq5+?= =?us-ascii?Q?PQ4ZhcQFXASGobyb75PElInwq/vtCM19cwH0DxQE6LIKEY18GvDSmxKNOx72?= =?us-ascii?Q?Z8ZXBh84wxGJpY3/D5buMO9cNJQO90xac220baEfpMfgJtXekNCMQtoK1pFw?= =?us-ascii?Q?+TKOp0ft70XlIxXLJS3VyCp/qtj/K7N71hmASh1DCUAQzvEiRZkidAW/DDub?= =?us-ascii?Q?BBpgV6xZScMQIIttDE2+6hBfM9CPNvliCIcWnkZHgkImk0y8w5qy95dTf0uh?= =?us-ascii?Q?k3Dgk0uOKQdaQODCb9FuiDfV5iJnNnHJkk+DY26V18RR9QJtuFuL7UjApMxH?= =?us-ascii?Q?wIFGVWQSCZytfhE+gU2ycWI1LFHzai3SJ8uRf+kFDuc/czM2gZWphCc1GSXP?= =?us-ascii?Q?NqlJ4I8rnudrJzdy+A/7W7U0pXetPoK/N9egFRUaxVCrUubdAi+3Dbt4H8LX?= =?us-ascii?Q?WShnmrGYMBuzbCrCbwWAuW/4d4/09o+vNzaIONKA0I1p/Bev14xu/THTThx6?= =?us-ascii?Q?sHBFtM1rcQlmOB30uN0fKku7bwaPeOsjhsb7hj/+jcon6d1J8gQBROeHaBgq?= =?us-ascii?Q?LmDW6pBA/b59AOEK56d7PPP+0z/5knX4IP5/c/jxQH3dT18w7Kjo44wf6QqX?= =?us-ascii?Q?362Fmc/SYdogmzGZ08XQnt5lCTM8Xx8aEUSo0D0+TeNFk+pKp2J3oKJ5mPda?= =?us-ascii?Q?OJfeX7qksGR+hxRFgeq6oiAnsPHO4KdKPNXx1kUZCzp0FSPT/zAZOx2U4fhm?= =?us-ascii?Q?vhsplvhjZL37hxLmhz1Y01CZe9a9D1ULfF8uomIHxiE28FvdOBoi/f5AXsVG?= =?us-ascii?Q?jTe5bNM7E7aGmfrDOXF1a4tVS9qNSeit7ChxAR/52OCl734Q4QI+BpRogkLS?= =?us-ascii?Q?bMfhECY1zjVBwqGEAlYWZ92s7zH5civiWOV92NE5FzQEjZ5sMyXY9XhXBmmu?= =?us-ascii?Q?y1+vMUEgGlYFIHeSHpCAYh3msCfDADPiaEQPT27lSyUxS4RhiwbsNpH0/g/t?= =?us-ascii?Q?W9i0jKEXwFI35kPQDcUZChgVhoJIpqLSU+t+rTSCT7Jqw28z19maDN3PyMnI?= =?us-ascii?Q?Sji/GmrN7RnSzy/EXPUQA46uO6xHERft+wtnvZy9TTE25ES1XxJGUjmF0Uec?= =?us-ascii?Q?g4cwu4SbTJlelNKedczc0QnpwwPDDEpzpv6ZRWFn9W1QFvNEit/mgvBK+v9o?= =?us-ascii?Q?cj965qmG5HvviNNUmuP5AVAMBtQFRtrqMIatLw4jcLwC/PhbK+mXbi2M0zWg?= =?us-ascii?Q?06f1nslqNKOc4a52B4isJP8Yc4t/URz9xGCklxiY1gvw4ewOqR5fxqbn/jrP?= =?us-ascii?Q?6KQ+IvIwwvRuOjUOjnpt5wZI8QquR0nrYI7/sfFaXwrWhXW1RoVdiqN3ONNT?= =?us-ascii?Q?pQbLi1nclYEDU0ji6A3KLlzPklMxoXhxST6Jf2Kespr8qZZcK?= X-Microsoft-Antispam-Message-Info: wF//+4geWd4paGQLlCd/QqqRfU1UiBG4iI1V+i2XZRC/6SUanURTWVJa5ql7L69dVQeJPS7B+AZ+KKMfqqv1FGwYl1LsFoDAdz2TM0QEN+JhSK7SBPoFQF6fhofIhmsF81XMHIfZOhnOLDpWerLuWuiJdRPm7b74Su/Jftj5AlXXELVXzglixHDTNVgcIkFrE4uqj7w++dPWinDFBY30l+ewS4P4hP3QgeeSOSKJq8yLbQCqw8AJCtYsXy77LXZMKmZqGtne39Ful+DATL95XEr837rpYTJz8AbdbMXmIoK/Xvb8ikZYE7PCjdRMB9baKB+O7AOSU7ZKgMhWkdX94hxst4nB76S315gOe567zT0= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 6:XLeq3KVzYDfuHlZiMMxxxTY19x4UeCiwRRhJvLkdp/dTdGx6OL/C27S4GzOyEQPqusQUSVU6M7gScZbAeW+v1q+YxkYAsfVX5BEW+bWe8033I2ymIJTDNKqh8Ho+N1Eh2e8+xNegV+6BIOoEy2Hal+AllfgIrcCnM+9+UTpc6dOdhJH4g76bEerC/FPvQE4zxbegNmnPToXvZZ4nW10AU8SkPxWt4QtEIh+1vgPnlMJvclkdjUTzUEcict7fD6j0Yy79O/4RZcBfOmi11RQtYFr89K4xR59sb8CvW8RXjx/XU0puo3I5+1Bg5intQtQFiwaHnp8DA45CmeXHH372V8BvESXQ7H5gVtpMUeUSntZuOb+2oxsBpirLTCW9J12ODBKCFN1kemNk0nq7eYcizhX7AYVq19/mBC7PHlZTC9kZ7n0yczXkDWXhurPLLFBNAo0y6l/5Ogdt340WIh6SEg==; 5:F8zXrMNqc3q+vTNBrnbzPqjlOfKivmlJTfEQmAmNuXysHoAEHxlvA472GZGUbljh3stATKpy6rtJSnNAX2NxYQMAZvs4fVtWinTRAHx+79mZ1cryZZOk/9XnRxlzQU0LmSu8OdwSWwK0tPlkCsjRAXT7n+W4bEWYtb2XdGlqDI8=; 7:q3pkYP4nHCCsV9u6XYZGPxBgWcIM7YBPj4u61a9r1adjgpSNlHnFHO8GW8yoMg8HyRmIIVUNA+pfERHrfmPvDbispbb3OvwKiNwRWXBleu7/wLBgnxrPY1DTYZKBtGvYLP3p7gi8ip8rpTIsSX4wBMXsMEqOvqnSsSkg43EGpNLwaqatU0mYExAWAdhUPIj9MwUVcgh+MhJ81k178+2wM2odDJULyO5bDBq2PUuNmsHwpjJK3KOS8j/gQ0HIGb84 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2018 02:11:17.0790 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6d89b448-e881-4176-4c8b-08d5f3663d37 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2041 Subject: [dpdk-stable] patch 'net/i40e: workaround performance degradation' has been queued to LTS release 17.11.4 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: , X-List-Received-Date: Fri, 27 Jul 2018 02:11:20 -0000 Hi, FYI, your patch has been queued to LTS release 17.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/28/18. So please shout if anyone has objections. Thanks. Yongseok --- >>From f3d7c22b8be200277f09a457d8b0c5611a909298 Mon Sep 17 00:00:00 2001 From: Haiyue Wang Date: Wed, 13 Jun 2018 13:52:41 +0800 Subject: [PATCH] net/i40e: workaround performance degradation [ upstream commit 3320d4a240daab15559d3e671bd44573a89cf017 ] The GL_SWR_PM_UP_THR value is not impacted from the link speed, its value is set according to the total number of ports for a better pipe-monitor configuration. All bellowing relevant device IDs are considered (NICs, LOMs, Mezz and Backplane): Device-ID Value Comments 0x1572 0x03030303 10G SFI 0x1581 0x03030303 10G Backplane 0x1586 0x03030303 10G BaseT 0x1589 0x03030303 10G BaseT (FortPond) 0x1580 0x06060606 40G Backplane 0x1583 0x06060606 2x40G QSFP 0x1584 0x06060606 1x40G QSFP 0x1587 0x06060606 20G Backplane (HP) 0x1588 0x06060606 20G KR2 (HP) 0x158A 0x06060606 25G Backplane 0x158B 0x06060606 25G SFP28 Fixes: c9223a2bf53c ("i40e: workaround for XL710 performance") Fixes: 75d133dd3296 ("net/i40e: enable 25G device") Signed-off-by: Haiyue Wang Acked-by: Qi Zhang --- drivers/net/i40e/i40e_ethdev.c | 71 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 64 insertions(+), 7 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 660175b31..afdeeab5a 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -9768,6 +9768,60 @@ i40e_pctype_to_flowtype(const struct i40e_adapter *adapter, #define I40E_GL_SWR_PM_UP_THR_SF_VALUE 0x06060606 #define I40E_GL_SWR_PM_UP_THR 0x269FBC +/* + * GL_SWR_PM_UP_THR: + * The value is not impacted from the link speed, its value is set according + * to the total number of ports for a better pipe-monitor configuration. + */ +static bool +i40e_get_swr_pm_cfg(struct i40e_hw *hw, uint32_t *value) +{ +#define I40E_GL_SWR_PM_EF_DEVICE(dev) \ + .device_id = (dev), \ + .val = I40E_GL_SWR_PM_UP_THR_EF_VALUE + +#define I40E_GL_SWR_PM_SF_DEVICE(dev) \ + .device_id = (dev), \ + .val = I40E_GL_SWR_PM_UP_THR_SF_VALUE + + static const struct { + uint16_t device_id; + uint32_t val; + } swr_pm_table[] = { + { I40E_GL_SWR_PM_EF_DEVICE(I40E_DEV_ID_SFP_XL710) }, + { I40E_GL_SWR_PM_EF_DEVICE(I40E_DEV_ID_KX_C) }, + { I40E_GL_SWR_PM_EF_DEVICE(I40E_DEV_ID_10G_BASE_T) }, + { I40E_GL_SWR_PM_EF_DEVICE(I40E_DEV_ID_10G_BASE_T4) }, + + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_KX_B) }, + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_QSFP_A) }, + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_QSFP_B) }, + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_20G_KR2) }, + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_20G_KR2_A) }, + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_25G_B) }, + { I40E_GL_SWR_PM_SF_DEVICE(I40E_DEV_ID_25G_SFP28) }, + }; + uint32_t i; + + if (value == NULL) { + PMD_DRV_LOG(ERR, "value is NULL"); + return false; + } + + for (i = 0; i < RTE_DIM(swr_pm_table); i++) { + if (hw->device_id == swr_pm_table[i].device_id) { + *value = swr_pm_table[i].val; + + PMD_DRV_LOG(DEBUG, "Device 0x%x with GL_SWR_PM_UP_THR " + "value - 0x%08x", + hw->device_id, *value); + return true; + } + } + + return false; +} + static int i40e_dev_sync_phy_type(struct i40e_hw *hw) { @@ -9832,13 +9886,16 @@ i40e_configure_registers(struct i40e_hw *hw) } if (reg_table[i].addr == I40E_GL_SWR_PM_UP_THR) { - if (I40E_PHY_TYPE_SUPPORT_40G(hw->phy.phy_types) || /* For XL710 */ - I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types)) /* For XXV710 */ - reg_table[i].val = - I40E_GL_SWR_PM_UP_THR_SF_VALUE; - else /* For X710 */ - reg_table[i].val = - I40E_GL_SWR_PM_UP_THR_EF_VALUE; + uint32_t cfg_val; + + if (!i40e_get_swr_pm_cfg(hw, &cfg_val)) { + PMD_DRV_LOG(DEBUG, "Device 0x%x skips " + "GL_SWR_PM_UP_THR value fixup", + hw->device_id); + continue; + } + + reg_table[i].val = cfg_val; } ret = i40e_aq_debug_read_register(hw, reg_table[i].addr, -- 2.11.0