From patchwork Fri Aug 31 11:29:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konstantin Khlebnikov X-Patchwork-Id: 964406 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=yandex-team.ru Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=yandex-team.ru header.i=@yandex-team.ru header.b="xfYjhEpR"; dkim=pass (1024-bit key) header.d=yandex-team.ru header.i=@yandex-team.ru header.b="Cn47WyeU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 421y563PYCz9rvt for ; Fri, 31 Aug 2018 21:37:14 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727748AbeHaPoQ (ORCPT ); Fri, 31 Aug 2018 11:44:16 -0400 Received: from forwardcorp1g.cmail.yandex.net ([87.250.241.190]:49002 "EHLO forwardcorp1g.cmail.yandex.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726990AbeHaPoQ (ORCPT ); Fri, 31 Aug 2018 11:44:16 -0400 X-Greylist: delayed 471 seconds by postgrey-1.27 at vger.kernel.org; Fri, 31 Aug 2018 11:44:15 EDT Received: from mxbackcorp1j.mail.yandex.net (mxbackcorp1j.mail.yandex.net [IPv6:2a02:6b8:0:1619::162]) by forwardcorp1g.cmail.yandex.net (Yandex) with ESMTP id 1F4AB20F4E; Fri, 31 Aug 2018 14:29:20 +0300 (MSK) Received: from smtpcorp1j.mail.yandex.net (smtpcorp1j.mail.yandex.net [2a02:6b8:0:1619::137]) by mxbackcorp1j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 4lRotXcsii-TJNmJSqh; Fri, 31 Aug 2018 14:29:20 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1535714960; bh=kF3BhWluw6SIGYtVxKnn5JAtcKG1YT/oqhT+tr/58FE=; h=Subject:From:To:Date:Message-ID; b=xfYjhEpRMj+IrdDc7NRzAlZgnMN3dqh6vbju1l1UagbpeOyqMzuXglvg5/X56oVXf rVihs9xCcgyDoeFXBKMoXoSLq7E9Nl6w7ZzO/p3Gig+UB5HTSsnj9iAjhG04tEJ5RS /xe/ytxFV7sxsar3bjA0koia0n1ZFrCgfqM8XK1E= Received: from dynamic-red.dhcp.yndx.net (dynamic-red.dhcp.yndx.net [2a02:6b8:0:40c:ac1b:4357:f84c:a04a]) by smtpcorp1j.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id 4XpL30ZqGF-TJOeFaGt; Fri, 31 Aug 2018 14:29:19 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1535714959; bh=kF3BhWluw6SIGYtVxKnn5JAtcKG1YT/oqhT+tr/58FE=; h=Subject:From:To:Date:Message-ID; b=Cn47WyeUv1I2eRn0Nop/nvHY+G9/SjYS0e3uePZfe9MoKbxqwfy5dY+ASNWYkOAU9 oihN99Lg10CREqSfwiFFW85gO2NTQM926LdtlvfdTjgyjUaNWfvRKIjS7rTFfGtXQu G5epsRGiIX3GLY/F1M+zrrBIi170kB7TXLV69SqE= Authentication-Results: smtpcorp1j.mail.yandex.net; dkim=pass header.i=@yandex-team.ru Subject: [PATCH RFC] net/mlx5_en: switch to Toeplitz RSS hash by default From: Konstantin Khlebnikov To: netdev@vger.kernel.org, Saeed Mahameed , Gal Pressman , Or Gerlitz , "David S. Miller" , Tariq Toukan Date: Fri, 31 Aug 2018 14:29:16 +0300 Message-ID: <153571495680.372632.9464993927924201878.stgit@buzz> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org XOR (MLX5_RX_HASH_FN_INVERTED_XOR8) gives only 8 bits. It seems not enough for RFS. All other drivers use toeplitz. Driver mlx4_en uses Toeplitz by default and warns if hash XOR is used together with NETIF_F_RXHASH (enabled by default too): "Enabling both XOR Hash function and RX Hashing can limit RPS functionality". XOR is default in mlx5_en since commit 2be6967cdbc9 ("net/mlx5e: Support ETH_RSS_HASH_XOR"). Hash function could be set via ethtool. But it would be nice to have single standard for drivers or proper description why this one is special. Signed-off-by: Konstantin Khlebnikov --- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 5a7939e70190..def9fb5dcbff 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -4558,7 +4558,7 @@ void mlx5e_build_nic_params(struct mlx5_core_dev *mdev, params->tx_min_inline_mode = mlx5e_params_calculate_tx_min_inline(mdev); /* RSS */ - params->rss_hfunc = ETH_RSS_HASH_XOR; + params->rss_hfunc = ETH_RSS_HASH_TOP; netdev_rss_key_fill(params->toeplitz_hash_key, sizeof(params->toeplitz_hash_key)); mlx5e_build_default_indir_rqt(params->indirection_rqt, MLX5E_INDIR_RQT_SIZE, max_channels);