From patchwork Thu Jul 16 10:43:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Leroy X-Patchwork-Id: 74219 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 730B7A0546; Thu, 16 Jul 2020 12:43:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2422D1BEB3; Thu, 16 Jul 2020 12:43:30 +0200 (CEST) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by dpdk.org (Postfix) with ESMTP id C4CE12C30 for ; Thu, 16 Jul 2020 12:43:28 +0200 (CEST) Received: by mail-wr1-f68.google.com with SMTP id b6so6504651wrs.11 for ; Thu, 16 Jul 2020 03:43:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PLtZNl7kMIAoxkAu87W1jkK+NiR6OnySYFG00+JvgzI=; b=Vni2HlBPMZ2pvJY0H64vhWvqZtTieSHwuDPdd9Ed+oQUV/SPnH+gpoHV6bco66enkm ABiQp45xb1ZQEfOn0kIwvVF89OyPW9FYg7e1UBYpMpDYLnFu8fxygNh43SDAdyHz96LI LXPKhCFRpk7viSp80lUH5tPLb9+4Bmx3Ape8gFg5q09GKeWQ70wipJRG+/oSwKcEfHQO 6YrYRYSE38V9rXJPvmb80Pl3t86qXrXjlhRaFjSBNnLX7ysz6/PjY3q0AsLJ2k3AHxLA 6DiFP/A2eXFYOZHXNuXYeW8TwgJS6RDmGWjCPgzJLJug6e1tEqt107hxsOjRFm3tHqnz tZOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=PLtZNl7kMIAoxkAu87W1jkK+NiR6OnySYFG00+JvgzI=; b=Kv0PCTCXqoxCr4ZJMgQmk97vHTuzhcR0wPAuw5pjmweZUdg3gaLgGjH3m62BFrb1v1 8SXlJ3qjSPmMdXB+9xgpy19gchNZticuTpfFedHlxC//evs4kQK6kngs466Scr6kUvo8 r9oaPbTBAZDYc4pH1LIHwt0TZoUMlV2aRTVfapTHbMqae0+FICaQD9y64OapGMra/7lz PJcMX7Pv04wGX8oRghn5AdYQmHHxr9GK8M8+HX2/BImwU2GuokXLFTzH7CRPcYes9Kqd GpaDIFfEk8ux+CPmYyhS4h366nwlC30nh2WJAIdbQq1r6jufm3vMFkacZAo7fTp+UY8V jY/Q== X-Gm-Message-State: AOAM531tyr/guRSQaqSSRxD69g6vyYbLvewdoCjoxT5xdtmgWLe73SY5 uak79uLVgmTwlrjga4Wrsk9859nC0HzybQ== X-Google-Smtp-Source: ABdhPJxK/8rDibhfESxsHIp+U+M1f79Ef+3iMMCrhw8IB1pfDDkb5EoLN+8xOetV3bwRZIAN5/i2YQ== X-Received: by 2002:adf:8024:: with SMTP id 33mr4780590wrk.117.1594896208189; Thu, 16 Jul 2020 03:43:28 -0700 (PDT) Received: from bolet.dev.6wind.com. (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id b186sm8534247wme.1.2020.07.16.03.43.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2020 03:43:27 -0700 (PDT) From: Maxime Leroy To: dev@dpdk.org Cc: stable@dpdk.org, Raslan Darawsheh Date: Thu, 16 Jul 2020 12:43:20 +0200 Message-Id: <20200716104320.10582-1-maxime.leroy@6wind.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] net/mlx5: fix rss reta is reset when device is started 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" The following sequences was working fine on mlx5: rte_eth_dev_configure(portid, ...); for (queueid = 0; queueid < nb_txq; queueid++) rte_eth_tx_queue_setup(portid, queueid, ...); for (queueid = 0; queueid < nb_rxq; queueid++) rte_eth_rx_queue_setup(portid, queueid, ...); // use a custom reta configuration rte_eth_dev_rss_reta_update(portid, reta_conf, reta_size); rte_eth_dev_start(portid); We were able to configure a custom reta before starting the port. The commit "net/mlx5: support RSS on hairpin" breaks this logic by moving the code initializing the RSS reta from rte_eth_dev_configure into rte_eth_dev_start. To fix the issue, the skip_default_rss_reta is always set to 1 in rte_eth_dev_rss_reta to avoid reconfigure the rss reta when the device is started. Fixes: 63bd16292c3a ("net/mlx5: support RSS on hairpin") Signed-off-by: Maxime Leroy Acked-by: Ori Kam --- drivers/net/mlx5/mlx5_rss.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_rss.c b/drivers/net/mlx5/mlx5_rss.c index 653b0691..6f75ece2 100644 --- a/drivers/net/mlx5/mlx5_rss.c +++ b/drivers/net/mlx5/mlx5_rss.c @@ -220,9 +220,11 @@ mlx5_dev_rss_reta_update(struct rte_eth_dev *dev, MLX5_ASSERT(reta_conf[idx].reta[pos] < priv->rxqs_n); (*priv->reta_idx)[i] = reta_conf[idx].reta[pos]; } + + priv->skip_default_rss_reta = 1; + if (dev->data->dev_started) { mlx5_dev_stop(dev); - priv->skip_default_rss_reta = 1; return mlx5_dev_start(dev); } return 0;