From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id 698BB236 for ; Tue, 21 Nov 2017 14:29:30 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 1F36820921; Tue, 21 Nov 2017 08:29:30 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 21 Nov 2017 08:29:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=kACCKKBz83CdagTZg Ze57EXCH5K+x6pRJQr4paRSOOg=; b=akOPAIZB6Q9KO2uGHDU4Ahg4zw75V45zc P4agTDNAN0VR2FooRNMLXUHgSOc0THUhuUO/DbQ5mmssUjQpNkok2noheKS2tfic nKuqfuRzL9bnqCi5ribJZs+xQqIkoJFZVALSC9VV6lI1MllPgxyCjY3WLkqv657B mx2XRuXLtpk8ajh+7PgwmFCK8js8S6FnOgmJbxLM9mo6KJH8tfIwgijH55fCiJMf s5ZqMRZhU1U1IDBcVAPmjnV2eJ0lDKqu3ANM7mBeR7IRcNGAn9vyVFf96aKOEdzl SDfYGS78uyULL+lIfIb/pyGH5vQBGeGyzGzfu3wjUYHJ8dEIkiW4A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=kACCKKBz83CdagTZgZe57EXCH5K+x6pRJQr4paRSOOg=; b=bzYxrmlb DbiWltZYvsc3EIklUD42ctZlxfcqBfIOYDKfBptIcvtYA21hqFJCrVOB8hZdOJtD RHk6eGmFodvTZfWY5S7THM3QJFGVZHuZtWda9iTL+bSrTuv5ikqKmukWKFhCDCIW 5nzjIpS7fT1sgdawAF2ozb/r6wY7EolAFoJRwYWkSlVrARBQZ5e25v62naf784/L ZRMsMx1Yx8AggZcHowMeUT/pgwSOl3eBwrB0K6fBg5uLaIL8z03ntl56QOM/c8DE 7W4SeBJV1nzaM+VzH9B3nsNGCVCIEBnA9o6XT0nxYFtmC5qqoFKnfEhpX3RrnjmC tB+mH9niXrryAg== X-ME-Sender: Received: from localhost.localdomain (unknown [180.158.62.0]) by mail.messagingengine.com (Postfix) with ESMTPA id 2F461243B9; Tue, 21 Nov 2017 08:29:27 -0500 (EST) From: Yuanhan Liu To: Ajit Khaparde Cc: dpdk stable Date: Tue, 21 Nov 2017 21:18:19 +0800 Message-Id: <1511270333-31002-157-git-send-email-yliu@fridaylinux.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1511270333-31002-1-git-send-email-yliu@fridaylinux.org> References: <1511270333-31002-1-git-send-email-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'net/bnxt: handle Rx multi queue creation properly' has been queued to stable release 17.08.1 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: Tue, 21 Nov 2017 13:29:30 -0000 Hi, FYI, your patch has been queued to stable release 17.08.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/24/17. So please shout if anyone has objections. Thanks. --yliu --- >>From c1fc3619ba5f2104ef9286e5d81be1a45f7377ae Mon Sep 17 00:00:00 2001 From: Ajit Khaparde Date: Tue, 24 Oct 2017 16:19:42 -0500 Subject: [PATCH] net/bnxt: handle Rx multi queue creation properly [ upstream commit 8103a57ab432a968f75aad661f7c9905bad77d1a ] This patch simplifies logic for RSS queue creation. 1) Do not hardcode number of VNIC pools in case of RSS 2) Log a message if Number of queues is > RTE_ETHDEV_QUEUE_STAT_CNTRS 3) Move the check for allocation of l2_filter inside the for loop. Fixes: 6133f207970c ("net/bnxt: add Rx queue create/destroy") Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_ethdev.c | 5 +++++ drivers/net/bnxt/bnxt_rxq.c | 18 ++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 9ad5e8a..4ccae5b 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -521,6 +521,11 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev) int vlan_mask = 0; int rc; + if (bp->rx_cp_nr_rings > RTE_ETHDEV_QUEUE_STAT_CNTRS) { + RTE_LOG(ERR, PMD, + "RxQ cnt %d > CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS %d\n", + bp->rx_cp_nr_rings, RTE_ETHDEV_QUEUE_STAT_CNTRS); + } bp->dev_stopped = 0; rc = bnxt_init_nic(bp); diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index 2665ed5..ed168cc 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -68,7 +68,6 @@ int bnxt_mq_rx_configure(struct bnxt *bp) struct bnxt_filter_info *filter; enum rte_eth_nb_pools pools = bp->rx_cp_nr_rings, max_pools = 0; struct bnxt_rx_queue *rxq; - bool rss_dflt_cr = false; bp->nr_vnics = 0; @@ -119,7 +118,7 @@ int bnxt_mq_rx_configure(struct bnxt *bp) pools = max_pools; break; case ETH_MQ_RX_RSS: - pools = 1; + pools = bp->rx_cp_nr_rings; break; default: RTE_LOG(ERR, PMD, "Unsupported mq_mod %d\n", @@ -128,13 +127,6 @@ int bnxt_mq_rx_configure(struct bnxt *bp) goto err_out; } } - /* - * If MQ RX w/o RSS no need for per VNIC filter. - */ - if ((dev_conf->rxmode.mq_mode & ETH_MQ_RX_VMDQ_DCB) || - (bp->rx_cp_nr_rings && - !(dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS))) - rss_dflt_cr = true; nb_q_per_grp = bp->rx_cp_nr_rings / pools; start_grp_id = 0; @@ -151,7 +143,7 @@ int bnxt_mq_rx_configure(struct bnxt *bp) STAILQ_INSERT_TAIL(&bp->ff_pool[i], vnic, next); bp->nr_vnics++; - for (j = 0, ring_idx = 0; j < nb_q_per_grp; j++, ring_idx++) { + for (j = 0; j < nb_q_per_grp; j++, ring_idx++) { rxq = bp->eth_dev->data->rx_queues[ring_idx]; rxq->vnic = vnic; } @@ -166,8 +158,10 @@ int bnxt_mq_rx_configure(struct bnxt *bp) vnic->start_grp_id = start_grp_id; vnic->end_grp_id = end_grp_id; - if (rss_dflt_cr && i) { - vnic->rss_dflt_cr = true; + if (i) { + if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_VMDQ_DCB || + !(dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS)) + vnic->rss_dflt_cr = true; goto skip_filter_allocation; } filter = bnxt_alloc_filter(bp); -- 2.7.4