From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1919DA0524; Fri, 8 Jan 2021 06:13:46 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57888140E0E; Fri, 8 Jan 2021 06:13:17 +0100 (CET) Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by mails.dpdk.org (Postfix) with ESMTP id 7F243140DF7 for ; Fri, 8 Jan 2021 06:13:14 +0100 (CET) Received: by mail-pf1-f178.google.com with SMTP id c13so2813011pfi.12 for ; Thu, 07 Jan 2021 21:13:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sbskh1+Rv/X+Z2gchGJ/6X5LXvSnkMEkj6pa3uEvRqg=; b=jFQUcoVfaGLL5NIC10ge5t20f1JeF7l0fOMWAZIp9oFzMS1DPeyYbhtgx29MMKbQj1 u22aS/zrjVBD7aDLe5tBtgg7ZhwmIuz3m5AvyEDDNysIy+bXrDeuL60YNOacFZIaDkhx M7GOkVzxT21qASKLwXqCBRWb3hP7dctE6UszHHu0uxYQbh7m3AQ8hDLWt2soho2eJZX3 mqrvpb4einEsRRoVjK9w7Lux4wM4C0PZtHqhLM9PQP3kxzcWK3sRpNSGjnaftM3IM4I1 pomrU67TnQPPJkQiGWl+wSayIlGp1KtYbrvtNSVO4mMxKotYI7UeZrDXuvs6+cZpIkud 82Ew== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=sbskh1+Rv/X+Z2gchGJ/6X5LXvSnkMEkj6pa3uEvRqg=; b=iyCbCLeCcm7REj+V7oPTnJc9b4kb3bMNlMdswBwoCxbugQ7SPvCnhebs9aR5qPrbwi 32BQPXo4vs1GXzn/b/8QxJD9Laf4YRHyLlM1Gb0z+KotCVbIr5M4MOxgbUaD/eMTYVS7 1QW6nkGpaitZiTdKu488wc76MFLuoqG520iFh4FdJ1KZg8jb45jRCpFi40cP2ptB0ZWH TC1Kp2HQmF4TmrITUu3HokCDZgQgGBo/fkKEGCp4mhwPpADKR/Dv7X+RmqniTZgK6HWi ZJzTWAf2w1Kvweyaa8licdmUucGnx219lCooO5/zDfc2G7IvqE61rY2DDWQiV8MZwJoA khUg== X-Gm-Message-State: AOAM5303TfAYbwianCcMBkvFWbAShiWopxxqyv1YfYy7zAuLkb4rX3XH AErsDdFZX8vcjJXM2vAbWJZSNzv47VaV0g== X-Google-Smtp-Source: ABdhPJxhm8seuNtve3U4X/ccrOTdff9e9i0j+RER/aVfqB/A/buOXcbgQAIMKQKGxkFVwpiHF+bQEA== X-Received: by 2002:a05:6a00:15ca:b029:19d:9ba1:b910 with SMTP id o10-20020a056a0015cab029019d9ba1b910mr5281297pfu.57.1610082793437; Thu, 07 Jan 2021 21:13:13 -0800 (PST) Received: from localhost.localdomain ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id n15sm7688829pgl.31.2021.01.07.21.13.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Jan 2021 21:13:12 -0800 (PST) From: Ajit Khaparde X-Google-Original-From: Ajit Khaparde To: dev@dpdk.org Cc: Kalesh AP Date: Thu, 7 Jan 2021 21:13:00 -0800 Message-Id: <20210108051301.33416-6-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) In-Reply-To: <20210108051301.33416-1-ajit.khaparde@broadcom.com> References: <20210103034627.80169-1-ajit.khaparde@broadcom.com> <20210108051301.33416-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v3 5/6] net/bnxt: modify context memory allocation 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 Sender: "dev" From: Kalesh AP Newer devices like SR2 may have chip backing store and do not require host backed memory allocation. In these cases, HWRM_FUNC_BACKING_STORE_QCAPS will return a zero entry size to indicate contexts for which the host should not allocate backing store. Selectively allocate context memory based on device capabilities and only enable backing store for the appropriate contexts Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_ethdev.c | 60 ++++++++++++++++++++-------------- drivers/net/bnxt/bnxt_hwrm.c | 3 ++ 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 8ca4fb151..e11751cc1 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -4212,39 +4212,49 @@ int bnxt_alloc_ctx_mem(struct bnxt *bp) ctx_pg = &ctx->qp_mem; ctx_pg->entries = ctx->qp_min_qp1_entries + ctx->qp_max_l2_entries; - mem_size = ctx->qp_entry_size * ctx_pg->entries; - rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "qp_mem", 0); - if (rc) - return rc; + if (ctx->qp_entry_size) { + mem_size = ctx->qp_entry_size * ctx_pg->entries; + rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "qp_mem", 0); + if (rc) + return rc; + } ctx_pg = &ctx->srq_mem; ctx_pg->entries = ctx->srq_max_l2_entries; - mem_size = ctx->srq_entry_size * ctx_pg->entries; - rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "srq_mem", 0); - if (rc) - return rc; + if (ctx->srq_entry_size) { + mem_size = ctx->srq_entry_size * ctx_pg->entries; + rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "srq_mem", 0); + if (rc) + return rc; + } ctx_pg = &ctx->cq_mem; ctx_pg->entries = ctx->cq_max_l2_entries; - mem_size = ctx->cq_entry_size * ctx_pg->entries; - rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "cq_mem", 0); - if (rc) - return rc; + if (ctx->cq_entry_size) { + mem_size = ctx->cq_entry_size * ctx_pg->entries; + rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "cq_mem", 0); + if (rc) + return rc; + } ctx_pg = &ctx->vnic_mem; ctx_pg->entries = ctx->vnic_max_vnic_entries + ctx->vnic_max_ring_table_entries; - mem_size = ctx->vnic_entry_size * ctx_pg->entries; - rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "vnic_mem", 0); - if (rc) - return rc; + if (ctx->vnic_entry_size) { + mem_size = ctx->vnic_entry_size * ctx_pg->entries; + rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "vnic_mem", 0); + if (rc) + return rc; + } ctx_pg = &ctx->stat_mem; ctx_pg->entries = ctx->stat_max_entries; - mem_size = ctx->stat_entry_size * ctx_pg->entries; - rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "stat_mem", 0); - if (rc) - return rc; + if (ctx->stat_entry_size) { + mem_size = ctx->stat_entry_size * ctx_pg->entries; + rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "stat_mem", 0); + if (rc) + return rc; + } min = ctx->tqm_min_entries_per_ring; @@ -4260,10 +4270,12 @@ int bnxt_alloc_ctx_mem(struct bnxt *bp) for (i = 0, ena = 0; i < ctx->tqm_fp_rings_count + 1; i++) { ctx_pg = ctx->tqm_mem[i]; ctx_pg->entries = i ? entries : entries_sp; - mem_size = ctx->tqm_entry_size * ctx_pg->entries; - rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "tqm_mem", i); - if (rc) - return rc; + if (ctx->tqm_entry_size) { + mem_size = ctx->tqm_entry_size * ctx_pg->entries; + rc = bnxt_alloc_ctx_mem_blk(bp, ctx_pg, mem_size, "tqm_mem", i); + if (rc) + return rc; + } ena |= HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_TQM_SP << i; } diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 56e2e33a9..6d54b1656 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -64,6 +64,9 @@ static void bnxt_hwrm_set_pg_attr(struct bnxt_ring_mem_info *rmem, uint8_t *pg_attr, uint64_t *pg_dir) { + if (rmem->nr_pages == 0) + return; + if (rmem->nr_pages > 1) { *pg_attr = 1; *pg_dir = rte_cpu_to_le_64(rmem->pg_tbl_map); -- 2.21.1 (Apple Git-122.3)