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); }