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 64B0DA0C43; Fri, 15 Oct 2021 21:03:51 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1AD514118C; Fri, 15 Oct 2021 21:03:18 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 2FC2641130 for ; Fri, 15 Oct 2021 21:03:11 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 19FCVKZp018212; Fri, 15 Oct 2021 12:03:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=opGSLPeIy6+ZvgPDw7Kmr+/OVl7dz4tIf9LYnP6r2II=; b=kMC6VyZVSeAPWMfkiX3VMf1Aa4fV723J5hDjXUjrRL73Js5+eKVx9bUsyuyM4NjBYN3r 4ZcKhmIG7GBMEi0SOiHYFT7DMAvHk7mz5gpLff3L6HDwsYzIZUEnux3ERkUjNwrzkSm9 zyH+0pSmi+viXgnHvz2PlP6mLvtVBybCX+VJbvHX+ofTQE6T3FzedG52CZed7geYwI7E 2P9r0I9Pj1g2RlCBdbHJs2RSai6FmvzRB5NFjP74EyDEgjK96tr39wDJIiiguqCTa5CB DplpdwK633FA4gqvTs7/P1i9yvSIj1ZmkEIcz8rWxt9+9YoPKjSGoaOCnEpKbZsv/n8F Uw== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com with ESMTP id 3bq9q8hg23-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 15 Oct 2021 12:03:09 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Fri, 15 Oct 2021 12:03:08 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Fri, 15 Oct 2021 12:03:08 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 1E3525B6928; Fri, 15 Oct 2021 12:03:06 -0700 (PDT) From: To: , Erik Gabriel Carrillo CC: , Pavan Nikhilesh Date: Sat, 16 Oct 2021 00:32:18 +0530 Message-ID: <20211015190221.2160-11-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211015190221.2160-1-pbhagavatula@marvell.com> References: <20211006065012.16508-1-pbhagavatula@marvell.com> <20211015190221.2160-1-pbhagavatula@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: kjqkyDWuvw6p6E2GKFDOUXgWdJGGPtCK X-Proofpoint-ORIG-GUID: kjqkyDWuvw6p6E2GKFDOUXgWdJGGPtCK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475 definitions=2021-10-15_06,2021-10-14_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v4 11/14] eventdev: move timer adapters memory to hugepage 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: Pavan Nikhilesh Move memory used by timer adapters to hugepage. Allocate memory on the first adapter create or lookup to address both primary and secondary process usecases. This will prevent TLB misses if any and aligns to memory structure of other subsystems. Signed-off-by: Pavan Nikhilesh --- lib/eventdev/rte_event_timer_adapter.c | 36 ++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c index ae55407042..894f532ef0 100644 --- a/lib/eventdev/rte_event_timer_adapter.c +++ b/lib/eventdev/rte_event_timer_adapter.c @@ -33,7 +33,7 @@ RTE_LOG_REGISTER_SUFFIX(evtim_logtype, adapter.timer, NOTICE); RTE_LOG_REGISTER_SUFFIX(evtim_buffer_logtype, adapter.timer, NOTICE); RTE_LOG_REGISTER_SUFFIX(evtim_svc_logtype, adapter.timer.svc, NOTICE); -static struct rte_event_timer_adapter adapters[RTE_EVENT_TIMER_ADAPTER_NUM_MAX]; +static struct rte_event_timer_adapter *adapters; static const struct event_timer_adapter_ops swtim_ops; @@ -138,6 +138,17 @@ rte_event_timer_adapter_create_ext( int n, ret; struct rte_eventdev *dev; + if (adapters == NULL) { + adapters = rte_zmalloc("Eventdev", + sizeof(struct rte_event_timer_adapter) * + RTE_EVENT_TIMER_ADAPTER_NUM_MAX, + RTE_CACHE_LINE_SIZE); + if (adapters == NULL) { + rte_errno = ENOMEM; + return NULL; + } + } + if (conf == NULL) { rte_errno = EINVAL; return NULL; @@ -312,6 +323,17 @@ rte_event_timer_adapter_lookup(uint16_t adapter_id) int ret; struct rte_eventdev *dev; + if (adapters == NULL) { + adapters = rte_zmalloc("Eventdev", + sizeof(struct rte_event_timer_adapter) * + RTE_EVENT_TIMER_ADAPTER_NUM_MAX, + RTE_CACHE_LINE_SIZE); + if (adapters == NULL) { + rte_errno = ENOMEM; + return NULL; + } + } + if (adapters[adapter_id].allocated) return &adapters[adapter_id]; /* Adapter is already loaded */ @@ -358,7 +380,7 @@ rte_event_timer_adapter_lookup(uint16_t adapter_id) int rte_event_timer_adapter_free(struct rte_event_timer_adapter *adapter) { - int ret; + int i, ret; ADAPTER_VALID_OR_ERR_RET(adapter, -EINVAL); FUNC_PTR_OR_ERR_RET(adapter->ops->uninit, -EINVAL); @@ -382,6 +404,16 @@ rte_event_timer_adapter_free(struct rte_event_timer_adapter *adapter) adapter->data = NULL; adapter->allocated = 0; + ret = 0; + for (i = 0; i < RTE_EVENT_TIMER_ADAPTER_NUM_MAX; i++) + if (adapters[i].allocated) + ret = adapter[i].allocated; + + if (!ret) { + rte_free(adapters); + adapters = NULL; + } + rte_eventdev_trace_timer_adapter_free(adapter); return 0; } -- 2.17.1