From patchwork Tue Sep 19 01:51:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 28925 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 388491B20F; Tue, 19 Sep 2017 03:52:37 +0200 (CEST) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0059.outbound.protection.outlook.com [104.47.33.59]) by dpdk.org (Postfix) with ESMTP id 6704F1B1AA for ; Tue, 19 Sep 2017 03:52:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=dTRCKBQlvH8OU+zCwP3vBBPSpJaSJp5/Iny6ut9nir4=; b=Wy/s665i9sBABVfNcyCBUBI5llZXrj90+OfKRXrBIXZY5EBKWg8aBTP39odOwnwwhtqYh5Kv+ldxe8FcIjoJj6yFIyJ3S+DkSjn2YZ6phWSoHmbVNHYH3EYzvqI68eJGACvpFkMKQWMvC9dxi1bXGQ2bRgJ1ZS/QG+j4hvb1yu4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by DM5PR0701MB3832.namprd07.prod.outlook.com (2603:10b6:4:7f::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Tue, 19 Sep 2017 01:52:14 +0000 From: Rasesh Mody To: dev@dpdk.org, ferruh.yigit@intel.com Cc: Rasesh Mody , Dept-EngDPDKDev@cavium.com Date: Mon, 18 Sep 2017 18:51:40 -0700 Message-Id: <1505785903-1741-21-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1505785903-1741-1-git-send-email-rasesh.mody@cavium.com> References: <1505785903-1741-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: MWHPR14CA0048.namprd14.prod.outlook.com (2603:10b6:300:12b::34) To DM5PR0701MB3832.namprd07.prod.outlook.com (2603:10b6:4:7f::30) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c8360a6f-b41e-41ee-0265-08d4ff010d52 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR0701MB3832; X-Microsoft-Exchange-Diagnostics: 1; DM5PR0701MB3832; 3:cRCbucQ41hgRaob9UDVUZn6LyI6HTY2D073dA52rAWXAkDSIRdRfjoWHGeDzbCKRm44g8SoI41/v8B6sTa8t/200Kgj0W73B8w75/6GbW05HZAv+0kyzVIGCt+jhPBT0Rf4zaUgm1TBPW88brPhlgkT4C/xRXcOAR1XFiVlNMS+LIerJ8H0emee5Y9/PpjalRy9VyVgXRigGg2NMvBnj7kr+35TSlMCMjtmnCOmXJHt2RjaTlewzoJ0B65iCa6Ig; 25:PzzhrXGAO4QmRadbRWbpFnxNd5Iuxse9IoBqPrH7hPa/lVfa5ZO3185d5C6S1B7PVtsVUVMGPkAJwNPU8C4CRkYYTqV5IbJc+oWNnYUK0Rfrpci2P0UQ+42ddX+45+qwfbckqh5AHox8rBDyvsbxPDoJNOta95BzApiv+jw8zNjCwnblXoOSgBeGRxVnouk9wNbOiJqSrkEzTmyxf9TW91P+wdnZRqQWjLTid5QFVTrjOd3TepWA3oDJk/7zwMZZBMcQvX6U+VkQ+vXhGMRtqC7uF3vXoNPh+ISNvt/e2mUA7snfbdzPUzih1xa/jnrwRsBIliPHS0IL9DN/K6SlKQ==; 31:KooFGrDO+Diq9sCaaV6o1U/4X2XC7fTUSeO9jRLMDnekiIlqwFRcWiIrkHkKsCv9EqjG9+DfM6vExnz8N1FpRuFz6tmvuFnYSXheZEn45E8V/2F9ZrhmVmgmYLl7xhA1i217wM95jX2934onRtJVoPfHSAu1ZtWluoDfXo7wZJ43T1yBN/Upwp9rSXqJzbMStcC1ixlALXPYIv/fndeZIMh2sawC9BY2ydVWX03oyBA= X-MS-TrafficTypeDiagnostic: DM5PR0701MB3832: X-Microsoft-Exchange-Diagnostics: 1; DM5PR0701MB3832; 20:mDM6RL2irktbHcQ99WZOPXdZ23bsm5j/vUq9XAiu1qT2b+PdzEBUAp3R5yskFKqTeZG+AuoxOwTbGOxrw2xIIHWa+4NqYfRqxTDcmaOTLiJZSnpCe+eD2dir8GJrCZvJXR48LItvEms3rUzEwtNw0z48hwrz2GQ0kgxJQlSv0BL9zI0BoVKXdmNTCrGzv96WoEf1cVaybxY9EvEHcizgArJKf2NxUULC827AcqyMsJwzLQufLW9/RyGxSy7qjbN2SN8MBb5aWcVXjAVnVCn3F8AV2E6OVWd7TPWhOIR5vtK8KqKKPGCCVLHw5pCnP8raUi3Wey7Lhm0tqB6mQwr9pYfgvCW8YfngGUpD8Bf86d5sCVicfKAIGTfeFCAzyJj9MgRe0O5bzgetJJqz7brg2lTxr/UzRAcnRlbapCbbkrphB+rIxq3R3G5rmQhTb7yGx/FJaHYLvlM9TFh03VuALz/2gBlJ9BFEViV8YfOi6FMHBIZVyn/lhW1ose1okdT5; 4:y348B+xgSP3kS4e2NFaqcKl8w21UclV/qzYQaRDpbfzvSRzGphcOtKEGeKEQ7ZC15Af1MGAEfIol60wRQ7LJDFWN9FeJD9EUmob7fclY7nCCzTOlJdrt6gDcDiyGfEO6LqPSc/rAYC2OzDVsy67911auOn4XKrg5n3npy4qFXX7NDXf7HeSpyid56oXiU2gFJOTU6kPFQXfuQLJIHdHA1poEe9Ek7qd4rCFzo4UvSTAgviOXPn2M/YR+KuK5Y7HZ X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR0701MB3832; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR0701MB3832; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(199003)(189002)(72206003)(106356001)(305945005)(105586002)(7736002)(36756003)(2950100002)(50226002)(478600001)(25786009)(6666003)(3846002)(4720700003)(55016002)(8676002)(189998001)(66066001)(5003940100001)(81166006)(81156014)(50986999)(107886003)(76176999)(316002)(5660300001)(16526017)(16586007)(47776003)(4326008)(6116002)(33646002)(21086003)(86362001)(8936002)(97736004)(575784001)(68736007)(69596002)(53936002)(50466002)(2906002)(48376002)(101416001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR0701MB3832; H:cavium.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR0701MB3832; 23:szmw3Te8N4/GdFNSAOT6/1Mq57StxWz1kFNW6IP?= 247Coyk8xg4DCh/c4eAGfnB7fpFxWPetOpKRaDwSNZJWxc0YPwzG/E10i5dMCmGtiq6LcJpB5DV4z1pdeKFRG+VevryilJQRBXrjpEP8UGU1AlxKs31Yir5Je6F7RFY/WRpSClIFBfvr2PW0MT+Tbg+KallsOIT8jkYVmN2s0NYbynBnR6GflY4ftJ4StXcn5Uc78BXmHvyFSVGQwa7B6jdEX1gb7nGMHOAq7nI+7HYlEG8uwGoy385YSJ3RJZJmos25jkHKL1jSqrnVxPtx04uQ7iTbhzSTRagkpTTT6CRHC5D6hnMZwpIW7SJs7jyPIlqeWBCa3w01Kj4jHDE51U8GQCt1qdC5R2bU4j0ElUdILw7oHi0O0V83vHitoCuhYY8IiHKCNR5g2lbsgrs5yyts50KZ2uFqSL1VGJMy6UFfSjXIPoiAa4g1xqWtUjh8dbV2O1ToSfQYMqBSemLtXSExX5VL9Ry1U6HEjmFtvbie1tmRUin3ty5Ihj61rAuxcKiIuzLzdKvoLp4f8weAyc+9zaKeQWRBXpZyJTPrWAnlnXUoFCWj/on/NX7Frk3Q0Ux/Mu1LbsTxnSJc8Ehgi+61Zz4JwG3h5TctvmFtXkbvGuPtOkG9RuKpdprOwhwG0eX5VfHSL/NcwirSD/CAM5S85Ghsgtwge6QXDQnKd82YJRc4KLAbAciBqObpdrrA5TZBd2Sl0MBdcKw20IGdGolposH+ggUTxxLe9FxRrL7flosawHIW0yeiqhL+sTaIO5Q4vGJ21cJ1gyPls+nQTCqrDC5xm+2fOrcerWbsiWR4ly3oJCHObSJCDxmAwMi+Q7wCn+Q4vqjAktW8ssTd3nnI00UmSabEGv8JzrCQb9gkvvwehLrrRkKfzgZ2ar27hU9DedMvTnGGWtSuJprDYEeW3Z6/FikVYn/kS7n9KbXMQBgSgGZKn8sFKgwkXq7VB+7YqjpwOYiJ+XgmcQRrXxK4d941PRls7uYIXCeuzSugqI56OTKjcih0KtQcA0anqCozbgaA7ffKre3+9yErxHPD9ztMsnkQ8QopVfDz5qn6zY84FiTJvaCIMJHS4V0kJkLOjl+kjy6WcK/BAB9f7patO X-Microsoft-Exchange-Diagnostics: 1; DM5PR0701MB3832; 6:SIgugGNF3NYK+GURe8ZkfBJBEtKSOuYrkgDKxMvqsiQh7TyPzlc4XPX+56fyjo4R5m14IgzRSbp3p9ILUYCkdz2nSPbb+yO8ARnu4wu4sWDxM75ZDsK6SUr12FVaY463EuY5pdjiKoyUa0YmuOdgLHH+BojkB9jJ5bWaP8h6cz/cYRF0V+iRpZu2Sx66568lVeqd04UZVICcYLI5H34N9X8cyJkdnusgy0YxmGa1VGeaQI4dqiew2SSiWjEYk2mwtajEUw2Hqjq1SLkCxpLUEdHgjXoFGI+n70Ry7vWG+VlFyaYznNuYcZHMplUgVqTjLw4/n6VRf8AdOWxMY+AF8g==; 5:qO6ILggjcsLfTy0ibNgYC/btghH8hzylE4bcVxuL20xGoIRRqWXrQIhAZ4ZvzHs+YmxoSB5ZxHga4Uc78EKa6IJvNBg76O+853uRBPqP9dml210CwqMrwOOtIrYsrNLWpE+vsxzRRbHrYY5QVjwkTQ==; 24:LvAfNFRCV2sF3ybZ6hLpcl0BI9sJiGcQJbLweEnLLnBRSnwuh54m0Pp+ThZhXOvSuIRCj1CAKfGuJ+s38X3hsM+bqJP32Q9UZobrQ46VsJw=; 7:wOaBc0voBDxV4ccK10GV2Z+tP6ggesXCJdyrW1zCDv++b3qbcg1PMX/n8G2NJY/dIU+2mMWkvkcim2lZwOB6YS2YgiCe8YPdXkTB5oku+OgedJQTefdrPpeZI7v2yRKRBiey5SlnOiT93jv+xFhP69zVuZFqm11jeH8y+HKT2CmGtpPuZsIn/Lr3h4u8NqcZndqKNn6gx6UWDCWAnWbUDv4y33nivkCJn2+cwEbVUnw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 01:52:14.5392 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0701MB3832 Subject: [dpdk-dev] [PATCH 50/53] net/qede/base: disable aRFS for NPAR and 100G 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" Disable accelerated RFS for NPAR and 100G using ECORE_MF_DISABLE_ARFS multi function mode bit. Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore.h | 2 ++ drivers/net/qede/base/ecore_cxt.c | 10 +++++++++- drivers/net/qede/base/ecore_dev.c | 6 +++++- drivers/net/qede/base/ecore_l2.c | 3 +++ drivers/net/qede/qede_if.h | 1 + drivers/net/qede/qede_main.c | 2 ++ 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/drivers/net/qede/base/ecore.h b/drivers/net/qede/base/ecore.h index 3b51fc2..dc09847 100644 --- a/drivers/net/qede/base/ecore.h +++ b/drivers/net/qede/base/ecore.h @@ -528,6 +528,8 @@ enum ecore_mf_mode_bit { /* TODO - if we ever re-utilize any of this logic, we can rename */ ECORE_MF_UFP_SPECIFIC, + + ECORE_MF_DISABLE_ARFS, }; enum ecore_ufp_mode { diff --git a/drivers/net/qede/base/ecore_cxt.c b/drivers/net/qede/base/ecore_cxt.c index 3ebeb12..fed7926 100644 --- a/drivers/net/qede/base/ecore_cxt.c +++ b/drivers/net/qede/base/ecore_cxt.c @@ -1991,6 +1991,8 @@ enum _ecore_status_t ecore_cxt_set_pf_params(struct ecore_hwfn *p_hwfn) switch (p_hwfn->hw_info.personality) { case ECORE_PCI_ETH: { + u32 count = 0; + struct ecore_eth_pf_params *p_params = &p_hwfn->pf_params.eth_pf_params; @@ -1999,7 +2001,13 @@ enum _ecore_status_t ecore_cxt_set_pf_params(struct ecore_hwfn *p_hwfn) ecore_cxt_set_proto_cid_count(p_hwfn, PROTOCOLID_ETH, p_params->num_cons, p_params->num_vf_cons); - p_hwfn->p_cxt_mngr->arfs_count = p_params->num_arfs_filters; + + count = p_params->num_arfs_filters; + + if (!OSAL_TEST_BIT(ECORE_MF_DISABLE_ARFS, + &p_hwfn->p_dev->mf_bits)) + p_hwfn->p_cxt_mngr->arfs_count = count; + break; } default: diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c index 0568470..9511110 100644 --- a/drivers/net/qede/base/ecore_dev.c +++ b/drivers/net/qede/base/ecore_dev.c @@ -3501,7 +3501,8 @@ static enum _ecore_status_t ecore_hw_get_resc(struct ecore_hwfn *p_hwfn, p_hwfn->p_dev->mf_bits = 1 << ECORE_MF_LLH_MAC_CLSS | 1 << ECORE_MF_LLH_PROTO_CLSS | 1 << ECORE_MF_LL2_NON_UNICAST | - 1 << ECORE_MF_INTER_PF_SWITCH; + 1 << ECORE_MF_INTER_PF_SWITCH | + 1 << ECORE_MF_DISABLE_ARFS; break; case NVM_CFG1_GLOB_MF_MODE_DEFAULT: p_hwfn->p_dev->mf_bits = 1 << ECORE_MF_LLH_MAC_CLSS | @@ -3514,6 +3515,9 @@ static enum _ecore_status_t ecore_hw_get_resc(struct ecore_hwfn *p_hwfn, DP_INFO(p_hwfn, "Multi function mode is 0x%lx\n", p_hwfn->p_dev->mf_bits); + if (ECORE_IS_CMT(p_hwfn->p_dev)) + p_hwfn->p_dev->mf_bits |= (1 << ECORE_MF_DISABLE_ARFS); + /* It's funny since we have another switch, but it's easier * to throw this away in linux this way. Long term, it might be * better to have have getters for needed ECORE_MF_* fields, diff --git a/drivers/net/qede/base/ecore_l2.c b/drivers/net/qede/base/ecore_l2.c index 01fe880..e3afc8a 100644 --- a/drivers/net/qede/base/ecore_l2.c +++ b/drivers/net/qede/base/ecore_l2.c @@ -2072,6 +2072,9 @@ void ecore_arfs_mode_configure(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, struct ecore_arfs_config_params *p_cfg_params) { + if (OSAL_TEST_BIT(ECORE_MF_DISABLE_ARFS, &p_hwfn->p_dev->mf_bits)) + return; + if (p_cfg_params->arfs_enable) { ecore_gft_config(p_hwfn, p_ptt, p_hwfn->rel_pf_id, p_cfg_params->tcp, diff --git a/drivers/net/qede/qede_if.h b/drivers/net/qede/qede_if.h index 1f97b59..bf80ccb 100644 --- a/drivers/net/qede/qede_if.h +++ b/drivers/net/qede/qede_if.h @@ -40,6 +40,7 @@ struct qed_dev_info { #define QED_MFW_VERSION_3_OFFSET 24 uint32_t flash_size; + bool b_arfs_capable; bool b_inter_pf_switch; bool tx_switching; u16 mtu; diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c index 2f6a4dc..a0c9e03 100644 --- a/drivers/net/qede/qede_main.c +++ b/drivers/net/qede/qede_main.c @@ -378,6 +378,8 @@ static int qed_slowpath_start(struct ecore_dev *edev, if (IS_PF(edev)) { dev_info->b_inter_pf_switch = OSAL_TEST_BIT(ECORE_MF_INTER_PF_SWITCH, &edev->mf_bits); + if (!OSAL_TEST_BIT(ECORE_MF_DISABLE_ARFS, &edev->mf_bits)) + dev_info->b_arfs_capable = true; dev_info->tx_switching = false; dev_info->smart_an = ecore_mcp_is_smart_an_supported(p_hwfn);