From patchwork Thu Feb 8 17:13:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136543 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EC42243AE1; Thu, 8 Feb 2024 18:13:42 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E295042E3C; Thu, 8 Feb 2024 18:13:38 +0100 (CET) Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) by mails.dpdk.org (Postfix) with ESMTP id 574E742E3B for ; Thu, 8 Feb 2024 18:13:38 +0100 (CET) Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-5dbf7b74402so1328427a12.0 for ; Thu, 08 Feb 2024 09:13:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412417; x=1708017217; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Rh+gkdV/ZdUgPI0ljkxJX26ZA1C5cSHlMrPvCi1PsfE=; b=JcICiqYXYkBkF2yEn5s4XM9mr5fE3OHGcewnjHPDQc3PBQi57hdNOJlncjWq/rD4QH 3ugKpSIh0JDKQbzO2gIzzbJxdk8aca/7clOjqyEQRHsBbuTIvNsOpiQcoifWwoUG+/tj hOb+T1iPiyRwck6MMZujV+3yB5Ci2MREKWywQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412417; x=1708017217; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Rh+gkdV/ZdUgPI0ljkxJX26ZA1C5cSHlMrPvCi1PsfE=; b=SnYCadJnRw0XGhJnEp7k//+ZdCy7n4ppJ8f2NOZeV+KUai7/spW8DMco/RnOtvEHof gkFhDOdVX9q4hibd/2jwgEIa8FVVCL2NBGFVWuXS8iLj4fPnH9kPi+EFZGLK2lxM6OXc 6jmDV/OZfrIryuu8wWRYjULcHFiiX0IH5LD2LfOo7w7bMCZ0dzmEqM3ZPD9WqVAchxYa GOJiXeaztLc0b3xz8q+S72KEhQ549rxXDAXo1VPyXTUwbyPDGdiQHG81zxGOHH5LWA4Y a0EuNBfOuij+Nb8xudKohwfNXvl4QGrIBVuAGKv93MedVP9Xoix2bVmvj0pMcilSyvNT KaKg== X-Gm-Message-State: AOJu0Yykp2zaNtuKiuFUzYXGsNVD+5YT8fynKeJdmTUCS3sdtatpYc0w viWcKli6fDedFFbD1MMOrB73GwcP3stUmzy5NAyR4lXDEVN5FCWPZ08xTkgbMCppZMTzrXwDeak kc+nFjyH9mv0QOXikkuJ2k0s8hBOBy2Q+R9dSFZ06drkkM2tpDQXFTOpeYQRQcxP/TarXb4YM51 142ISOxWLCT5obbUOuKql2P6tOP2ZB X-Google-Smtp-Source: AGHT+IF0iVyMdiadC+f2SUuVDk5da9sLYzYCqepXe/BduinZb8ABRVBYRVxcptu45mC3S+OWP4f+5A== X-Received: by 2002:a05:6a20:2585:b0:19e:a574:9b10 with SMTP id k5-20020a056a20258500b0019ea5749b10mr252880pzd.33.1707412416946; Thu, 08 Feb 2024 09:13:36 -0800 (PST) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:35 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Kishore Padmanabha Subject: [PATCH 1/7] net/bnxt: avoid seg fault in Tx queue release Date: Thu, 8 Feb 2024 09:13:24 -0800 Message-Id: <20240208171330.31139-2-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Kishore Padmanabha The tx queue mutex should be freed before the tx queue structure and similarly the completion ring stats should be reset before ring free. Signed-off-by: Kishore Padmanabha Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_txq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c index f99ad211db..7d91e88c9d 100644 --- a/drivers/net/bnxt/bnxt_txq.c +++ b/drivers/net/bnxt/bnxt_txq.c @@ -104,12 +104,12 @@ void bnxt_tx_queue_release_op(struct rte_eth_dev *dev, uint16_t queue_idx) /* Free TX completion ring hardware descriptors */ if (txq->cp_ring) { + bnxt_free_txq_stats(txq); bnxt_free_ring(txq->cp_ring->cp_ring_struct); rte_free(txq->cp_ring->cp_ring_struct); rte_free(txq->cp_ring); } - bnxt_free_txq_stats(txq); rte_memzone_free(txq->mz); txq->mz = NULL; From patchwork Thu Feb 8 17:13:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136544 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CFB8D43AE1; Thu, 8 Feb 2024 18:13:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 21BAE42E45; Thu, 8 Feb 2024 18:13:41 +0100 (CET) Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by mails.dpdk.org (Postfix) with ESMTP id ABF4F42E43 for ; Thu, 8 Feb 2024 18:13:39 +0100 (CET) Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-6e04eceebb5so34564b3a.1 for ; Thu, 08 Feb 2024 09:13:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412418; x=1708017218; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=0y20n18Xv22YlzhqQnIvz2twsjtR0l8Igmo2DuvhTQ0=; b=ABWYnxX/NiqJp47L07rKv1tnid8Rlxi4VWsH8AWmXrsy8vQbL5b3i2GKlIV2PwxC/5 OmO/NGlPWOwPRLVr0Uv4S+sSbKuJSlExrScRB0Fw21cugRZwh4AENIRKv4NK559GFFZR oi5XQ5Oj6MPq5NEU7YUzAk1cx4qDQleUws454= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412418; x=1708017218; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0y20n18Xv22YlzhqQnIvz2twsjtR0l8Igmo2DuvhTQ0=; b=b0hMfsxAzGM6u3833+sUaGwFvXioL3kRloHmdofSDSH3GO5+IItwYRH+K6BTiAzXiN mV4/ucfBHZ8e9qdJYNB/tYChG1+wOfC4Prm3rfDisUYN6BcSlMHHSLoYEglYX5TS4MMO e/v0NIZazqaxvXxXnaNivfxGxhXi6FBMuBcmZn0YqweYL/CspsQ/FJWFKGWlADIYwA7V R8fG2l1QaudrxxcuCElNhpVaf6xzXQzw6Se5ntBCSzOsYIMWqVximaF9uv4tgeCy+Jh4 w9HT9wpJZiMZnhmUboQmWkAckj1jRHTWsTGMCLr0FS9EqW4RJmqvVJR4uJz+p2MQZhsU rJIQ== X-Gm-Message-State: AOJu0Yx1Z2GmOZXXnjr7gRh+KzPvOzhCesMu2IEB6TWgTdhgaAeES2XC tQISg4K4BEgjKQMChxQawzc7oTXeWcjUmUiKspxPW9KsTPYL652nwbWF7DCGNnzeOxIWqm5HHVD igFPO2n6pCTQri3/HddLlTpaYfDzlQCpMAcEJ5624vlA8ML+DLFj1jW0zERad1gEOXhHIJ3TL/e O+JJ535kyTrgLeqa9cly2i0pb6QLo5 X-Google-Smtp-Source: AGHT+IEZ0GeVKdMinUZN09V//76ZbyFN0lVZzKoWCnTAa1pCzVRq0gDDv5HBG/+wiQ35RCOGyyGB7w== X-Received: by 2002:a05:6a20:2316:b0:19e:a53d:c412 with SMTP id n22-20020a056a20231600b0019ea53dc412mr144420pzc.34.1707412418224; Thu, 08 Feb 2024 09:13:38 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU1c00BFXxNKwrIZL+sVd136H9i9jWgRk/bIAxf+Xs1e0d3ft5Vgtg/3Lg+tnEMrs0pqmjsd5g3+yrEWdDVjJfLGhznqVNdSj9FjDK0kTP1yA== Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:37 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: stable@gpgk.org, Pete Spreadborough Subject: [PATCH 2/7] net/bnxt: modify locking for representor Tx Date: Thu, 8 Feb 2024 09:13:25 -0800 Message-Id: <20240208171330.31139-3-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Currently the representor Tx function is synchronized using a per device lock. But that is not sufficient when there is simultaneous traffic on the parent Tx ring and the representor rings. Moreover the representor Tx is not protected from incursions by the parent transmits. This can cause parent Tx threads to crossover into the representor Tx contexts. Prevent this by using per TxQ locking and protect not just representor Tx, but also the parent Tx using the lock. Fixes: 6dc83230b43b ("net/bnxt: support port representor data path") Cc: stable@gpgk.org Signed-off-by: Ajit Khaparde Reviewed-by: Pete Spreadborough --- drivers/net/bnxt/bnxt.h | 1 - drivers/net/bnxt/bnxt_ethdev.c | 11 +---------- drivers/net/bnxt/bnxt_reps.c | 6 +++--- drivers/net/bnxt/bnxt_txq.c | 6 ++++++ drivers/net/bnxt/bnxt_txq.h | 1 + drivers/net/bnxt/bnxt_txr.c | 13 +++++++++++++ drivers/net/bnxt/bnxt_txr.h | 4 +++- 7 files changed, 27 insertions(+), 15 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 42ecca35d7..3b3df6ba28 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -623,7 +623,6 @@ struct bnxt_mark_info { struct bnxt_rep_info { struct rte_eth_dev *vfr_eth_dev; - pthread_mutex_t vfr_lock; pthread_mutex_t vfr_start_lock; bool conduit_valid; }; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index abe46e8004..fecc8666e8 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -1803,10 +1803,8 @@ bnxt_uninit_locks(struct bnxt *bp) pthread_mutex_destroy(&bp->def_cp_lock); pthread_mutex_destroy(&bp->health_check_lock); pthread_mutex_destroy(&bp->err_recovery_lock); - if (bp->rep_info) { - pthread_mutex_destroy(&bp->rep_info->vfr_lock); + if (bp->rep_info) pthread_mutex_destroy(&bp->rep_info->vfr_start_lock); - } } static void bnxt_drv_uninit(struct bnxt *bp) @@ -6534,13 +6532,6 @@ static int bnxt_init_rep_info(struct bnxt *bp) for (i = 0; i < BNXT_MAX_CFA_CODE; i++) bp->cfa_code_map[i] = BNXT_VF_IDX_INVALID; - rc = pthread_mutex_init(&bp->rep_info->vfr_lock, NULL); - if (rc) { - PMD_DRV_LOG(ERR, "Unable to initialize vfr_lock\n"); - bnxt_free_rep_info(bp); - return rc; - } - rc = pthread_mutex_init(&bp->rep_info->vfr_start_lock, NULL); if (rc) { PMD_DRV_LOG(ERR, "Unable to initialize vfr_start_lock\n"); diff --git a/drivers/net/bnxt/bnxt_reps.c b/drivers/net/bnxt/bnxt_reps.c index d96d972904..3a4720bc3c 100644 --- a/drivers/net/bnxt/bnxt_reps.c +++ b/drivers/net/bnxt/bnxt_reps.c @@ -124,8 +124,8 @@ bnxt_rep_tx_burst(void *tx_queue, qid = vfr_txq->txq->queue_id; vf_rep_bp = vfr_txq->bp; parent = vf_rep_bp->parent_dev->data->dev_private; - pthread_mutex_lock(&parent->rep_info->vfr_lock); ptxq = parent->tx_queues[qid]; + pthread_mutex_lock(&ptxq->txq_lock); ptxq->vfr_tx_cfa_action = vf_rep_bp->vfr_tx_cfa_action; @@ -134,9 +134,9 @@ bnxt_rep_tx_burst(void *tx_queue, vf_rep_bp->tx_pkts[qid]++; } - rc = bnxt_xmit_pkts(ptxq, tx_pkts, nb_pkts); + rc = _bnxt_xmit_pkts(ptxq, tx_pkts, nb_pkts); ptxq->vfr_tx_cfa_action = 0; - pthread_mutex_unlock(&parent->rep_info->vfr_lock); + pthread_mutex_unlock(&ptxq->txq_lock); return rc; } diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c index 7d91e88c9d..05032f7807 100644 --- a/drivers/net/bnxt/bnxt_txq.c +++ b/drivers/net/bnxt/bnxt_txq.c @@ -114,6 +114,7 @@ void bnxt_tx_queue_release_op(struct rte_eth_dev *dev, uint16_t queue_idx) txq->mz = NULL; rte_free(txq->free); + pthread_mutex_destroy(&txq->txq_lock); rte_free(txq); dev->data->tx_queues[queue_idx] = NULL; } @@ -197,6 +198,11 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev, goto err; } + rc = pthread_mutex_init(&txq->txq_lock, NULL); + if (rc != 0) { + PMD_DRV_LOG(ERR, "TxQ mutex init failed!"); + goto err; + } return 0; err: bnxt_tx_queue_release_op(eth_dev, queue_idx); diff --git a/drivers/net/bnxt/bnxt_txq.h b/drivers/net/bnxt/bnxt_txq.h index 3a483ad5c3..9e54985c4c 100644 --- a/drivers/net/bnxt/bnxt_txq.h +++ b/drivers/net/bnxt/bnxt_txq.h @@ -26,6 +26,7 @@ struct bnxt_tx_queue { int index; int tx_wake_thresh; uint32_t vfr_tx_cfa_action; + pthread_mutex_t txq_lock; struct bnxt_tx_ring_info *tx_ring; unsigned int cp_nr_rings; diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c index d74d271d91..7fc44e989d 100644 --- a/drivers/net/bnxt/bnxt_txr.c +++ b/drivers/net/bnxt/bnxt_txr.c @@ -567,6 +567,19 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq) uint16_t bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +{ + struct bnxt_tx_queue *txq = tx_queue; + uint16_t rc; + + pthread_mutex_lock(&txq->txq_lock); + rc = _bnxt_xmit_pkts(tx_queue, tx_pkts, nb_pkts); + pthread_mutex_unlock(&txq->txq_lock); + + return rc; +} + +uint16_t _bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts) { int rc; uint16_t nb_tx_pkts = 0; diff --git a/drivers/net/bnxt/bnxt_txr.h b/drivers/net/bnxt/bnxt_txr.h index e64ea2c7d1..09078d545d 100644 --- a/drivers/net/bnxt/bnxt_txr.h +++ b/drivers/net/bnxt/bnxt_txr.h @@ -47,7 +47,9 @@ void bnxt_free_tx_rings(struct bnxt *bp); int bnxt_init_one_tx_ring(struct bnxt_tx_queue *txq); int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id); uint16_t bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, - uint16_t nb_pkts); + uint16_t nb_pkts); +uint16_t _bnxt_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts); #if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) uint16_t bnxt_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); From patchwork Thu Feb 8 17:13:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136545 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6D73043AE1; Thu, 8 Feb 2024 18:13:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B97A042E5E; Thu, 8 Feb 2024 18:13:43 +0100 (CET) Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by mails.dpdk.org (Postfix) with ESMTP id 2A61A42E4D for ; Thu, 8 Feb 2024 18:13:41 +0100 (CET) Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6e05b72fd56so30420b3a.2 for ; Thu, 08 Feb 2024 09:13:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412420; x=1708017220; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=mj5vEQQOzBEdC9+xHzt3/ioxaEWRSawGwj+IicIFHio=; b=F0ZauDgN/FIAqmLWjfnslYXUPRYp6fafUofQsC/3FD4mGysvkGblk4ruuoPcHuJ/RR C9697TviyTqJzA4v+gK6klZ+danmlVAqxLpETuK7SJUU9hf0p1M2F8DVJCC2+aT3C1Vb tJSvp2nN0i70JZZfjwwlULP/xTgGStXOcmbto= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412420; x=1708017220; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mj5vEQQOzBEdC9+xHzt3/ioxaEWRSawGwj+IicIFHio=; b=wpD+/Dm0NOXdjoPM+C58VaWWa42IzS+NAj9u3ae/PKrpjccW0M9hFiBH2o7fZ6XSF3 e4xU/szsDodRFkfKfhXOGMy3xwTs+4zXFGad5zVefL2XdnLgoMH/tNdIpbYuvZgCDx/C Quj0RF2lMRLAZCRt7zDYXiIZTuRqx06ozfESBQeXAVHl2egVKxu05qf3hzNT6RfUPXRi azRNgozrqlVK68kwA7LLsBI+ViXL3kJcOjQFozNr5Adqssi1EB3VmuiPQzfDAdQCPEda rMNHCQplLXM1iDGP8/fYUqnDQ3Kk84DkB8ThSOnxQqzeUrf+FeKOQ2gxt9QpJDaHi31g q+Kg== X-Gm-Message-State: AOJu0YxMIEHMn/SJMVY9tw83G1VH6ptUgwJIElWlRvEw2UNfqxjf8Yr8 /nssBGB0Upx/xuKURSTPnbTsRGAGKIabvRztnOPapz4qBz7kcHoPkAuBOStjHdJDvEN7/YB1xN4 EPWw6YZm8P8GYOeRfdEzLTiksBr4FvcJHmXMNWF/N0OI5cKofCj3FdNQCU2tf48xKI34sElPZes iECWWT3jXMJmFnf10RIDm+AcWknu4Y X-Google-Smtp-Source: AGHT+IG17ya8q8YCFGqfB9Iyq1nOSjhGi0iISaWasrYP+LVHAnD12Fbnlsq9PqD1jDRK/g7vUJ+H1w== X-Received: by 2002:a05:6a20:7d98:b0:19e:30b2:bee0 with SMTP id v24-20020a056a207d9800b0019e30b2bee0mr262705pzj.34.1707412419824; Thu, 08 Feb 2024 09:13:39 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUipEqlA+jQ9x24hqA5GmsPzZoUb2oDMtTEL6sBFf708CiS8p7+NR3ar+KwBdbzjofIGEejslF12OHiQw9dOwVLDqKSIddoX3WYfH5TseSu Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:38 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Kalesh AP , Kishore Padmanabha Subject: [PATCH 3/7] net/bnxt: refactor VNIC context cleanup Date: Thu, 8 Feb 2024 09:13:26 -0800 Message-Id: <20240208171330.31139-4-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Currently the VNIC context cleanup is being called a little early leading to the VNIC RSS context being freed prior to the filter cleanup corresponding to the VNIC. But since these filters could still be referenced by the default VNIC the hardware fails to find the corresponding VNIC context in some rare cases. Modify the cleanup sequence for the VNICs to free the VNIC contexts after the filters and the actual VNIC is freed up in the firmware. Also make sure to clear the rx_mask with mask of 0 for default VNIC. Signed-off-by: Ajit Khaparde Reviewed-by: Kalesh AP Reviewed-by: Kishore Padmanabha --- drivers/net/bnxt/bnxt_hwrm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 17527a3c4d..397b4a0e05 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -3570,16 +3570,18 @@ void bnxt_free_all_hwrm_resources(struct bnxt *bp) if (vnic->fw_vnic_id == INVALID_HW_RING_ID) continue; + if (vnic->func_default && (bp->flags & BNXT_FLAG_DFLT_VNIC_SET)) + bnxt_hwrm_cfa_l2_clear_rx_mask(bp, vnic); bnxt_clear_hwrm_vnic_flows(bp, vnic); bnxt_clear_hwrm_vnic_filters(bp, vnic); - bnxt_hwrm_vnic_ctx_free(bp, vnic); - bnxt_hwrm_vnic_tpa_cfg(bp, vnic, false); bnxt_hwrm_vnic_free(bp, vnic); + bnxt_hwrm_vnic_ctx_free(bp, vnic); + rte_free(vnic->fw_grp_ids); vnic->fw_grp_ids = NULL; } From patchwork Thu Feb 8 17:13:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136546 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1A47B43AE1; Thu, 8 Feb 2024 18:14:04 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DF73242E63; Thu, 8 Feb 2024 18:13:44 +0100 (CET) Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by mails.dpdk.org (Postfix) with ESMTP id D9F7340273 for ; Thu, 8 Feb 2024 18:13:42 +0100 (CET) Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6d9f94b9186so52144b3a.0 for ; Thu, 08 Feb 2024 09:13:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412422; x=1708017222; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=dly0MEkgCBsHlqOFaZT+sNc9znn4AWPiGFTD3r/FLCE=; b=PNIXefENpfCenzIXSVvY/nyRO3pFqkK8UGwtPP4xioIwhoKD/v2xpRgOaNL2AY2+Wi /Tk1vrt/9+dYZyb4FEpR+lllwfe6KyKGnbSGz5zBLdBzHM+K3VyIyPzSHCM7BwM0h+iG 1YOnTTes22Vuo9Vnq4U4ZgA9+xpZQGWbs74WM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412422; x=1708017222; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dly0MEkgCBsHlqOFaZT+sNc9znn4AWPiGFTD3r/FLCE=; b=WP7k2QmJ5yP1TV8ev7DqmMl2sUo4qOVhzp4sWVqnYzywaez6ysOm/r5m5L2FTmqRlY VWa/yOwJuFpfpntQs3uKrt7L5/IUqMkeJAhPv4rkCWcfkvtnno8Im+K3fPKhvioyNrPI 9he9M4XtVx/f9t5r8gh1iCOMDSPF2u0wuyZ6Lrmuo8HmbyhW4OuRm836XmciqUMJsrb5 12uJsxdNm2RA1onARgaQvE769FrzXG71V4zm/om3fB8fLpFNgf8wKUU6b0nKc5umOQ7s LHLiaxlmwZB1DQCpkSaenazioEOkFqTe5K8VeLjtNnDRNDim1kJ8aRQDGkTawRRHzR3L lUgw== X-Gm-Message-State: AOJu0YxRz57HW3e4AkphVLF61JPnS7r4iIqt1iZLKMprvS5Jf/CFcIcY +0C8P4dJgQovbi6Y1IodqM1cKBOSWTsg0eXFQLPGYDT9UQojsu9OG8zTruPIKjA+9gObZBxNza3 GZPhNM8gumdSV0fmLe2aH8Xn0N3EVNZ6nslycUUewZ3gcnnJuiK7Yh3HlVtY6EejX0CS+qhIxDw p8BIY9bgMH4s+M4ihwbJxvIwrmwaU4 X-Google-Smtp-Source: AGHT+IGe5KQHy/vemi/M9W66LmHoBxi219+XrMCENUecv38t6+qb5NEhNVvPWfJtm8YwuAh2psAIPA== X-Received: by 2002:aa7:85d6:0:b0:6e0:35e9:a78e with SMTP id z22-20020aa785d6000000b006e035e9a78emr6316997pfn.21.1707412421028; Thu, 08 Feb 2024 09:13:41 -0800 (PST) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:40 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Damodharam Ammepalli Subject: [PATCH 4/7] net/bnxt: cleanup vnic ref count Date: Thu, 8 Feb 2024 09:13:27 -0800 Message-Id: <20240208171330.31139-5-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Damodharam Ammepalli Cleanup vnic ref count when port is stopped. When vlan strip is set/unset the current active vnics are destroyed and recreated with VNIC id provided by firmware. The default vnic at index 0 still has ref_cnt=1 while rx_queues are reset to 0, which fails the check under bnxt_vnic_rss_action_free() Resetting the vnic->ref_cnt in bnxt_free_all_hwrm_resources() post FW handshake in clean-up path. Signed-off-by: Damodharam Ammepalli Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_hwrm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 397b4a0e05..1d523d6dec 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -3584,6 +3584,8 @@ void bnxt_free_all_hwrm_resources(struct bnxt *bp) rte_free(vnic->fw_grp_ids); vnic->fw_grp_ids = NULL; + if (vnic->ref_cnt && !vnic->rx_queue_cnt) + vnic->ref_cnt--; } /* Ring resources */ bnxt_free_all_hwrm_rings(bp); From patchwork Thu Feb 8 17:13:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136547 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F83C43AE1; Thu, 8 Feb 2024 18:14:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1987142E66; Thu, 8 Feb 2024 18:13:46 +0100 (CET) Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by mails.dpdk.org (Postfix) with ESMTP id A28E840273 for ; Thu, 8 Feb 2024 18:13:44 +0100 (CET) Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-6e04ea51984so40830b3a.0 for ; Thu, 08 Feb 2024 09:13:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412423; x=1708017223; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=AXZx0GK16UmuqFgu2+pAXwf8u+XGY2nB1JsYNn2AwPQ=; b=f16c7u/Rp/Zw+Wc8d7PZHYWy1MOvRSyTUvn38g7gOpoW1PuGPRH5qG49UxnXWe17KS LWN5NTOLN8HCv2LSERULSfY5tZfETnkxonIrPX0ikcX8MO3QWoOzrmAk8dc3cw+jhg5D kd+rIsZOKNtYbtbeJ2iRAO9zH0FEDWDzCFeAs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412423; x=1708017223; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=AXZx0GK16UmuqFgu2+pAXwf8u+XGY2nB1JsYNn2AwPQ=; b=jUWr3YHC+Psj7jQjm7h3ZNZNFq8mYueXim3iRAApC1m3xjXWN7ditXSkf6nDUGRukS i8h8Mt2Igu2F6+OSkRXHd1vBv3zquvaVXqSVmGI20oOG4xx7qrveniGm1J2LHD3uTt1H JFM3SlEaPGhnEnstSegWlP/79vz7r+hr7Bn9Wk8YclKAZKiVdY4+8s7C5vwWji+pc2f/ zRnO+Cxv1+PQuzwUC/bzywHUvfBNuIQOBdZw9jTDFbczVSiGJ/+DYv/7XpmMUB2qQq4r g0SmkEKE2Z1Z9ChXJyvc53I0bHf87OoVlfB3JRDqzK+ygX//FTosgCBwTDTihIv+cEaH 2RuA== X-Gm-Message-State: AOJu0Yx6HyikFax9TW3p7EYLw6F/yGvVrZeig7Foxz4dcedNI16QbxKJ FDlJrleAOeZxdWLwK6frKyaxFaz0DD3DXsndgHr1hcSx0B09YDV9QldVnTdvnXkcIvBYNoklEdG MKTGa+5gnQW83TRllAD5HJUroleE8Io6n6Rm/sVSGXHqxOrqBQ2Mnz8xQiprULBVrTLpDJZf4Is a41LSbyWSlI0XzfYu7nBe85QQ3cv4M X-Google-Smtp-Source: AGHT+IHd0X24H9393143I2Z+If6bv4kBoKIFKrKNhNIEHA852ffJGbtSukmVmjel6YZ4+Vj58D05nw== X-Received: by 2002:aa7:8757:0:b0:6de:1b57:ca8c with SMTP id g23-20020aa78757000000b006de1b57ca8cmr7362781pfo.23.1707412423167; Thu, 08 Feb 2024 09:13:43 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCV/Tbs5K8DD2Xw5faWQjhcD3EOK1W1LuQXy1Kmwx0+8WDfzSn3LtJbQX3gtpqS5ctPmM5O9SH/p+k2f1P6v47zTNM9p7A== Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:41 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Shuanglin Wang , Shahaji Bhosle Subject: [PATCH 5/7] net/bnxt: adjust session name on multi host system Date: Thu, 8 Feb 2024 09:13:28 -0800 Message-Id: <20240208171330.31139-6-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Shuanglin Wang On multi-host system, pci-id on PFs are same on each host. The currect code is using the pci-id as the session name to create a session. This would cause a name confliction on firmware then fw rejects the session creation. The patch will change the session name with parent pci_id for multi-host system. This solution works for single PF per EP only. Signed-off-by: Shuanglin Wang Signed-off-by: Ajit Khaparde Reviewed-by: Shahaji Bhosle --- drivers/net/bnxt/bnxt.h | 1 + drivers/net/bnxt/bnxt_hwrm.c | 8 +++++ drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 58 ++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 3b3df6ba28..4203e6a055 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -825,6 +825,7 @@ struct bnxt { #define BNXT_TESTPMD_EN(bp) \ ((bp)->flags2 & BNXT_FLAGS2_TESTPMD_EN) + uint16_t multi_host_pf_pci_id; uint16_t chip_num; #define CHIP_NUM_58818 0xd818 #define BNXT_CHIP_SR2(bp) ((bp)->chip_num == CHIP_NUM_58818) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 1d523d6dec..2ceab555a5 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -4207,6 +4207,14 @@ int bnxt_hwrm_parent_pf_qcfg(struct bnxt *bp) bp->parent->port_id = rte_le_to_cpu_16(resp->port_id); flags = rte_le_to_cpu_16(resp->flags); + + /* check for the mulit-host support */ + if (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_MULTI_HOST) { + bp->flags |= BNXT_FLAG_MULTI_HOST; + bp->multi_host_pf_pci_id = resp->pci_id; + PMD_DRV_LOG(INFO, "Mult-Host system Parent PCI-ID: 0x%x\n", resp->pci_id); + } + /* check for the multi-root support */ if (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_MULTI_ROOT) { bp->flags2 |= BNXT_FLAGS2_MULTIROOT_EN; diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c index b696b6dc3e..274e935a1f 100644 --- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c +++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c @@ -641,6 +641,49 @@ ulp_ctx_shared_session_close(struct bnxt *bp, bnxt_ulp_session_tfp_reset(session, session_type); } +static int32_t +ulp_ctx_mh_get_session_name(struct bnxt *bp, + struct tf_open_session_parms *parms) +{ + int32_t rc = 0; + unsigned int domain = 0, bus = 0, slot = 0, device = 0; + rc = sscanf(parms->ctrl_chan_name, + "%x:%x:%x.%u", + &domain, + &bus, + &slot, + &device); + if (rc != 4) { + /* PCI Domain not provided (optional in DPDK), thus we + * force domain to 0 and recheck. + */ + domain = 0; + /* Check parsing of bus/slot/device */ + rc = sscanf(parms->ctrl_chan_name, + "%x:%x.%u", + &bus, + &slot, + &device); + if (rc != 3) { + BNXT_TF_DBG(DEBUG, + "Failed to scan device ctrl_chan_name\n"); + return -EINVAL; + } + } + + /* change domain name for multi-host system */ + domain = domain + (0xf & bp->multi_host_pf_pci_id); + sprintf(parms->ctrl_chan_name, + "%x:%x:%x.%u", + domain, + bus, + slot, + device); + BNXT_TF_DBG(DEBUG, + "Session name for Multi-Host: ctrl_chan_name:%s\n", parms->ctrl_chan_name); + return 0; +} + static int32_t ulp_ctx_shared_session_open(struct bnxt *bp, enum bnxt_ulp_session_type session_type, @@ -664,6 +707,14 @@ ulp_ctx_shared_session_open(struct bnxt *bp, ethdev->data->port_id, rc); return rc; } + + /* On multi-host system, adjust ctrl_chan_name to avoid confliction */ + if (BNXT_MH(bp)) { + rc = ulp_ctx_mh_get_session_name(bp, &parms); + if (rc) + return rc; + } + resources = &parms.resources; /* @@ -835,6 +886,13 @@ ulp_ctx_session_open(struct bnxt *bp, return rc; } + /* On multi-host system, adjust ctrl_chan_name to avoid confliction */ + if (BNXT_MH(bp)) { + rc = ulp_ctx_mh_get_session_name(bp, ¶ms); + if (rc) + return rc; + } + rc = bnxt_ulp_cntxt_app_id_get(bp->ulp_ctx, &app_id); if (rc) { BNXT_TF_DBG(ERR, "Unable to get the app id from ulp.\n"); From patchwork Thu Feb 8 17:13:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136548 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EFB1343AE1; Thu, 8 Feb 2024 18:14:17 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5357C42E5C; Thu, 8 Feb 2024 18:13:48 +0100 (CET) Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by mails.dpdk.org (Postfix) with ESMTP id 670E742E4B for ; Thu, 8 Feb 2024 18:13:46 +0100 (CET) Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-6e04fd5e05aso88736b3a.0 for ; Thu, 08 Feb 2024 09:13:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412425; x=1708017225; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=7+EuYQg7z30sNvAb25INuGCng/jSzuMU+n0veI7NjzY=; b=DFEpndWjVt4HpHTbs+xUFkqvRe6a0SVhX1yeraaCXzwB4CUTgR0xJOaGZ72mHOnfc/ KgAD2Fq6L39i+x1TgVmP8W+NThkgOYrZIi7uDEytd7Lk54rJeLOc8evM2VYa0DJf+TZk B4kcqrK/ARmWqogIbIjc4dd2CYaQytud9soQw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412425; x=1708017225; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7+EuYQg7z30sNvAb25INuGCng/jSzuMU+n0veI7NjzY=; b=q0sbHXyni0HB4nCwJSWmDJ+tlgA+tKBPnuAYuBgJSy+fAnS5xXoffradewINbXrte9 NhOtyUhLh7tYtWlVt6clF7RDoucImcgUOcJDijX+BEFxpM5+cwnYluKhdjUBVhVyHhNB Cqe+4/poZAD9fQzOpjEiJsT2CVwr4CeVMdWyWoW6n90ei9WsYlOpc6pdSHOkHcMJNTPl iQRwBoSHMB6Dq8iikLwHpbUQj120uxg2sP6QmcPXFzBYOAYGXJdXdRnp116qClSMqSrK SPN4rTpnbYCJo7xWUtkQyAU2DVGRQcEO3CDAUs5HQNvl2qq7Nm3KYCbT9xD7V+RssGRU 0pNw== X-Gm-Message-State: AOJu0Yyto5NmTJklmYyNF06buK4t6P1OM5qm5xC0uXS1tnDYPSFGUpa4 etiSf4P0u94qJTmgkxKncDFg09xjBzvZI+O5XEVPweMgOlXkNWx05nkvctsT10+/Y9oSpOQC9Qt bdcJ+OaHf9p3VG9HiprCeVgOrHiCItrPJozhUhvik7xAyXUBulHiNkpELbyrz2QtoV1HL+aPxvg xiSbJXTwPhnfNHvBQ+g2dhpU3wBfx5 X-Google-Smtp-Source: AGHT+IFIZuUMHbHSbKDJqrRwGYv+a/J2vCnaPxPaVtibQ2L6H++MTg2JU/72HDjApC91USgUjSkwVw== X-Received: by 2002:a05:6a00:1d85:b0:6da:bcea:4cd4 with SMTP id z5-20020a056a001d8500b006dabcea4cd4mr248290pfw.16.1707412424886; Thu, 08 Feb 2024 09:13:44 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCWY0T68qi4VQoGqCUknT+SxMklmR20nQ3x2bzmizuRkRoWJslMtOdxyVym0Cd+H4XxsddEAns5ePtHiLJOwHMCdKSmklQ5uhaz9eIpQPKdkCUFu/7dzp05GJkIRGhYGBmKzUW0K4LAYjcrPL3oFfWA= Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:43 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Damodharam Ammepalli , Somnath Kotur , Kalesh AP Subject: [PATCH 6/7] net/bnxt: update consumer index of NQ regularly Date: Thu, 8 Feb 2024 09:13:29 -0800 Message-Id: <20240208171330.31139-7-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Update the consumer index of the default CQ/NQ at regular intervals. Since the size of the queue can vary, ring the queue at 1/8th the queue depth. Also skip NQ doorbell update if done already. If the NQ is rearmed already or if there was no valid entry, which is indicated by cnt being 0, skip ringing the doorbell for the NQ. Signed-off-by: Ajit Khaparde Reviewed-by: Damodharam Ammepalli Reviewed-by: Somnath Kotur Reviewed-by: Kalesh AP --- drivers/net/bnxt/bnxt_irq.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/net/bnxt/bnxt_irq.c b/drivers/net/bnxt/bnxt_irq.c index 71d1565e08..edf16bd33e 100644 --- a/drivers/net/bnxt/bnxt_irq.c +++ b/drivers/net/bnxt/bnxt_irq.c @@ -17,6 +17,19 @@ * Interrupts */ +static inline void bnxt_int_handler_rearm(struct bnxt *bp, + struct bnxt_cp_ring_info *cpr, + uint32_t raw_cons) +{ + cpr->cp_raw_cons = raw_cons; + if (BNXT_HAS_NQ(bp)) + bnxt_db_nq_arm(cpr); + else + B_CP_DB_REARM(cpr, cpr->cp_raw_cons); +} + +/* ARM the default CQ/NQ at intervals of 1/8th of ring size */ +#define BNXT_DB_REARM_FACTOR 8 void bnxt_int_handler(void *param) { struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; @@ -24,6 +37,7 @@ void bnxt_int_handler(void *param) uint32_t cons, raw_cons, cp_ring_size; struct bnxt_cp_ring_info *cpr; struct cmpl_base *cmp; + uint16_t cnt = 0; if (bp == NULL) @@ -54,13 +68,15 @@ void bnxt_int_handler(void *param) bnxt_event_hwrm_resp_handler(bp, cmp); raw_cons = NEXT_RAW_CMP(raw_cons); + if (++cnt >= cp_ring_size / BNXT_DB_REARM_FACTOR) { + bnxt_int_handler_rearm(bp, cpr, raw_cons); + cnt = 0; + } } - cpr->cp_raw_cons = raw_cons; - if (BNXT_HAS_NQ(bp)) - bnxt_db_nq_arm(cpr); - else - B_CP_DB_REARM(cpr, cpr->cp_raw_cons); + /* cnt = 0 means no work or we rearmed already */ + if (cnt > 0) + bnxt_int_handler_rearm(bp, cpr, raw_cons); pthread_mutex_unlock(&bp->def_cp_lock); } From patchwork Thu Feb 8 17:13:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 136549 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AB42243AE1; Thu, 8 Feb 2024 18:14:26 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 16D5E42E76; Thu, 8 Feb 2024 18:13:50 +0100 (CET) Received: from mail-oo1-f49.google.com (mail-oo1-f49.google.com [209.85.161.49]) by mails.dpdk.org (Postfix) with ESMTP id 3C95742E6A for ; Thu, 8 Feb 2024 18:13:47 +0100 (CET) Received: by mail-oo1-f49.google.com with SMTP id 006d021491bc7-595aa5b1fe0so21159eaf.2 for ; Thu, 08 Feb 2024 09:13:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1707412426; x=1708017226; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:to:from :from:to:cc:subject:date:message-id:reply-to; bh=ZkftaJ3B9GvasjH2wFCwzFCwFd2YB8KE5voUtcNfoig=; b=iR4yuDXSVPAZYjMi6kxiu8Pewd2t/uzNYHW8xLj+H4cDWr6mn3sW+NVkJL56s8xd+O mpEHdsjSmPmkxpJUTttHlHBwORdoCHHwe/hQZGQWEcSgZskZp/xOnEFgWKY8OAnowx6Y af6lDhAxK2LN8fGkmkGoYVNKt8QokcLqwBd1M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707412426; x=1708017226; h=mime-version:references:in-reply-to:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZkftaJ3B9GvasjH2wFCwzFCwFd2YB8KE5voUtcNfoig=; b=YBEPHQOBr+JNwhONKoZAJFI3jhVFmx9bnfl2LaLHVymDa1m+Bly7nR8HyVa82aWd4h Imr4J8t86rYn8p6V2XqvvTONHkybb83BUvCSGjFb7xEJSankPLsb2ztJYhNIY0qqn+U8 c27PjBJyKwspSYRgNvCHJ+m0M9bWgm+aDuaUN0Mn+HmWKeS8N5fXus/KM9Bp0atEzTVU HRZerZllBmSl+fkg+ASP4DnkHj87Ot6y6GbRFjfWMJhXkOIHWbIGSyh2f9cK8xt/+ruf o916GGHNY/sprjFrItoTSn85QorP+lw7P0kTUJL/eqf6xCges43JNIuctoH4l97muBG5 Jrhg== X-Gm-Message-State: AOJu0YzL35FOxF54+MpAXPWu7jMrItlmucqGf+9iFpvgu2Bia0m9lNDl tgoNBnekO+S9bQSNMyXPAldK02GtEv8UBZLaDmZvp4UEGMNB5amSyO7jR6U2Oxx9ma46h9AXxLp yVI7QJnrInJiiDWbpWr30Pgi9XTNSdY8v1x1SaVyS0xKUlfvme9+4F0VujMdQMIQl9ttc8ZgR+M k64185PT11Netyu0Mpk6GHF5ul6faQ X-Google-Smtp-Source: AGHT+IElCO2iNoySqgsmAaBBSjk2BI3WtM6HtZa2QEFHoOvd6U8Wnlzf/mLOtwgn53olAeb1xVSUlQ== X-Received: by 2002:a05:6358:7404:b0:178:6463:d40b with SMTP id s4-20020a056358740400b001786463d40bmr8386660rwg.17.1707412425711; Thu, 08 Feb 2024 09:13:45 -0800 (PST) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id p15-20020aa79e8f000000b006e0527ffe88sm3966204pfq.213.2024.02.08.09.13.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:13:45 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Subject: [PATCH 7/7] net/bnxt: update RSS algorithm capability Date: Thu, 8 Feb 2024 09:13:30 -0800 Message-Id: <20240208171330.31139-8-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20240208171330.31139-1-ajit.khaparde@broadcom.com> References: <20240208171330.31139-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Update rss_algo_capa in ethdev. This information was not being set. Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_ethdev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index fecc8666e8..09a70b7529 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -1138,6 +1138,9 @@ static int bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev, dev_info->tx_offload_capa = bnxt_get_tx_port_offloads(bp) | dev_info->tx_queue_offload_capa; dev_info->flow_type_rss_offloads = bnxt_eth_rss_support(bp); + dev_info->rss_algo_capa = RTE_ETH_HASH_ALGO_CAPA_MASK(DEFAULT) | + RTE_ETH_HASH_ALGO_CAPA_MASK(TOEPLITZ) | + RTE_ETH_HASH_ALGO_CAPA_MASK(SIMPLE_XOR); dev_info->speed_capa = bnxt_get_speed_capabilities(bp); dev_info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |