From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6CE55424D8; Wed, 12 Jun 2024 06:36:42 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 858E740B99; Wed, 12 Jun 2024 06:36:38 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by mails.dpdk.org (Postfix) with ESMTP id 94C834021E for ; Wed, 12 Jun 2024 06:36:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1718166996; x=1749702996; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FQtVVLf1X+CGAkKZ6eCFvebRu6jFLFiXID+HmitCGyw=; b=eVvYtxdskJxpjrKA2mNX7iIq8UNaUYofeKtW5LRxmk4firDPsH2Vwv1Q 7t/OyRAuEhmE/FLESBGm/YtmlIWTVvw5sthX/XtUrP4Ej3h0Nt9fy/s6t g/+u4K2vYTuwxGNb7xEiaWP+PoUnUcs9hlPSu8feOwTU3Mn7UZtLFgZ8w IZIefFN+kzaauepXG0GCY/y4PeGGl1Y7pWD2mCZgAjrWUUBw/ms1I+3jn Ww0YcZCoXJn6sO+l/z6h2KH4FYpujDq5WB4Yh6ArzUgEClXGCVnVuksvh h5i48sfgfdXMEF2naw4srYYCYWh4T589WaYQklPmo6GX+HY8HCiRXXWO7 g==; X-CSE-ConnectionGUID: V51Fxo5MQeyjZPLc567d2g== X-CSE-MsgGUID: zU8pYv9FTBqnI9boxy0bkA== X-IronPort-AV: E=McAfee;i="6600,9927,11100"; a="18742177" X-IronPort-AV: E=Sophos;i="6.08,232,1712646000"; d="scan'208";a="18742177" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2024 21:36:35 -0700 X-CSE-ConnectionGUID: hWe4UlO/Sh6hnIwGfhIYmA== X-CSE-MsgGUID: D5Lpu/8CSGut9ALftsD2PQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,232,1712646000"; d="scan'208";a="40281893" Received: from unknown (HELO npf-hyd-clx-03..) ([10.145.170.182]) by orviesa008.jf.intel.com with ESMTP; 11 Jun 2024 21:36:33 -0700 From: Soumyadeep Hore To: bruce.richardson@intel.com, anatoly.burakov@intel.com Cc: dev@dpdk.org Subject: [PATCH v3 01/22] common/idpf: added NVME CPF specific code with defines Date: Wed, 12 Jun 2024 03:52:36 +0000 Message-ID: <20240612035257.2245824-2-soumyadeep.hore@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240612035257.2245824-1-soumyadeep.hore@intel.com> References: <20240604080611.2197835-1-soumyadeep.hore@intel.com> <20240612035257.2245824-1-soumyadeep.hore@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Removes NVME dependency on memory allocations and uses a prepared buffer instead. The changes do not affect other components. Signed-off-by: Soumyadeep Hore --- drivers/common/idpf/base/idpf_controlq.c | 23 +++++++++++++++++++- drivers/common/idpf/base/idpf_controlq_api.h | 7 +++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/drivers/common/idpf/base/idpf_controlq.c b/drivers/common/idpf/base/idpf_controlq.c index a82ca628de..bada75abfc 100644 --- a/drivers/common/idpf/base/idpf_controlq.c +++ b/drivers/common/idpf/base/idpf_controlq.c @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2023 Intel Corporation + * Copyright(c) 2001-2024 Intel Corporation */ #include "idpf_controlq.h" @@ -145,8 +145,12 @@ int idpf_ctlq_add(struct idpf_hw *hw, qinfo->buf_size > IDPF_CTLQ_MAX_BUF_LEN) return -EINVAL; +#ifndef NVME_CPF cq = (struct idpf_ctlq_info *) idpf_calloc(hw, 1, sizeof(struct idpf_ctlq_info)); +#else + cq = *cq_out; +#endif if (!cq) return -ENOMEM; @@ -172,10 +176,15 @@ int idpf_ctlq_add(struct idpf_hw *hw, } if (status) +#ifdef NVME_CPF + return status; +#else goto init_free_q; +#endif if (is_rxq) { idpf_ctlq_init_rxq_bufs(cq); +#ifndef NVME_CPF } else { /* Allocate the array of msg pointers for TX queues */ cq->bi.tx_msg = (struct idpf_ctlq_msg **) @@ -185,6 +194,7 @@ int idpf_ctlq_add(struct idpf_hw *hw, status = -ENOMEM; goto init_dealloc_q_mem; } +#endif } idpf_ctlq_setup_regs(cq, qinfo); @@ -195,6 +205,7 @@ int idpf_ctlq_add(struct idpf_hw *hw, LIST_INSERT_HEAD(&hw->cq_list_head, cq, cq_list); +#ifndef NVME_CPF *cq_out = cq; return status; @@ -204,6 +215,7 @@ int idpf_ctlq_add(struct idpf_hw *hw, init_free_q: idpf_free(hw, cq); cq = NULL; +#endif return status; } @@ -232,8 +244,13 @@ void idpf_ctlq_remove(struct idpf_hw *hw, * destroyed. This must be called prior to using the individual add/remove * APIs. */ +#ifdef NVME_CPF +int idpf_ctlq_init(struct idpf_hw *hw, u8 num_q, + struct idpf_ctlq_create_info *q_info, struct idpf_ctlq_info **ctlq) +#else int idpf_ctlq_init(struct idpf_hw *hw, u8 num_q, struct idpf_ctlq_create_info *q_info) +#endif { struct idpf_ctlq_info *cq = NULL, *tmp = NULL; int ret_code = 0; @@ -244,6 +261,10 @@ int idpf_ctlq_init(struct idpf_hw *hw, u8 num_q, for (i = 0; i < num_q; i++) { struct idpf_ctlq_create_info *qinfo = q_info + i; +#ifdef NVME_CPF + cq = *(ctlq + i); +#endif + ret_code = idpf_ctlq_add(hw, qinfo, &cq); if (ret_code) goto init_destroy_qs; diff --git a/drivers/common/idpf/base/idpf_controlq_api.h b/drivers/common/idpf/base/idpf_controlq_api.h index 38f5d2df3c..6b6f3e84c2 100644 --- a/drivers/common/idpf/base/idpf_controlq_api.h +++ b/drivers/common/idpf/base/idpf_controlq_api.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2001-2023 Intel Corporation + * Copyright(c) 2001-2024 Intel Corporation */ #ifndef _IDPF_CONTROLQ_API_H_ @@ -158,8 +158,13 @@ enum idpf_mbx_opc { /* Will init all required q including default mb. "q_info" is an array of * create_info structs equal to the number of control queues to be created. */ +#ifdef NVME_CPF +int idpf_ctlq_init(struct idpf_hw *hw, u8 num_q, + struct idpf_ctlq_create_info *q_info, struct idpf_ctlq_info **ctlq); +#else int idpf_ctlq_init(struct idpf_hw *hw, u8 num_q, struct idpf_ctlq_create_info *q_info); +#endif /* Allocate and initialize a single control queue, which will be added to the * control queue list; returns a handle to the created control queue -- 2.43.0