From patchwork Sun Oct 3 08:26:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100380 X-Patchwork-Delegate: jerinj@marvell.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 7DCF2A034F; Sun, 3 Oct 2021 10:31:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9F40A41222; Sun, 3 Oct 2021 10:31:48 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 4F46740698 for ; Sun, 3 Oct 2021 10:31:45 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1934NYDH023850; Sun, 3 Oct 2021 01:31:42 -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=tIW2Gi14U4vChiAihfAg5Z6Uhba6leNP5QC1XYLu5Sw=; b=fzCSfsKi+d5MIIUKSDFaTnXqHvRVnfqNF7VUe+AzGviRqUK1BAEpDK+XH9mGSkFwquyo 5n4oQFFojI0IDn4rE6FVr7938SLzuVL6roHWqd3Chbjkx5IJurE6fuY1BdtS5cNi63yc F0LYmPaotOqumx3nuO4skPp+7ZEw+IgDZxCWdpcJrp0fqVsF28LzLxt2iryw+UrrYE8p bjlo/e1yrPpLeWKLeD4isLwYSa0dNtv94nC/fXh9+ehJLTbSSMzCuvFKYGHnnUPYFQTX MK7yy8w0ovq0wfkFtbKmJtwjCt5V+y4OETWwFPe8Vt967jFVmjjjUTldayCe9htaK8H4 VQ== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4ma-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:31:41 -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; Sun, 3 Oct 2021 01:31:39 -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; Sun, 3 Oct 2021 01:31:39 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id A8FE23F7044; Sun, 3 Oct 2021 01:31:35 -0700 (PDT) From: To: , Pavan Nikhilesh , "Shijith Thotton" , Timothy McDaniel , Hemant Agrawal , "Nipun Gupta" , =?utf-8?q?Mattias_R=C3=B6nnblom?= , Liang Ma , "Peter Mccarthy" , Harry van Haaren , Abhinandan Gujjar , Ray Kinsella CC: Date: Sun, 3 Oct 2021 13:56:57 +0530 Message-ID: <20211003082710.8398-1-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210823194020.1229-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: qHLA_KyEGEaSGtVoze-wX-1v4B53HN8N X-Proofpoint-ORIG-GUID: qHLA_KyEGEaSGtVoze-wX-1v4B53HN8N X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 01/13] eventdev: make driver interface as internal 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 Mark all the driver specific functions as internal, remove `rte` prefix from `struct rte_eventdev_ops`. Remove experimental tag from internal functions. Remove `eventdev_pmd.h` from non-internal header files. Signed-off-by: Pavan Nikhilesh --- v2 Changes: - Rework inline flat array by adding port data into it. - Rearrange rte_event_timer elements. drivers/event/cnxk/cn10k_eventdev.c | 6 ++--- drivers/event/cnxk/cn9k_eventdev.c | 10 ++++----- drivers/event/dlb2/dlb2.c | 2 +- drivers/event/dpaa/dpaa_eventdev.c | 2 +- drivers/event/dpaa2/dpaa2_eventdev.c | 2 +- drivers/event/dsw/dsw_evdev.c | 2 +- drivers/event/octeontx/ssovf_evdev.c | 2 +- drivers/event/octeontx/ssovf_worker.c | 4 ++-- drivers/event/octeontx2/otx2_evdev.c | 26 +++++++++++----------- drivers/event/opdl/opdl_evdev.c | 2 +- drivers/event/skeleton/skeleton_eventdev.c | 2 +- drivers/event/sw/sw_evdev.c | 2 +- lib/eventdev/eventdev_pmd.h | 6 ++++- lib/eventdev/eventdev_pmd_pci.h | 4 +++- lib/eventdev/eventdev_pmd_vdev.h | 2 ++ lib/eventdev/meson.build | 6 +++++ lib/eventdev/rte_event_crypto_adapter.h | 1 - lib/eventdev/rte_eventdev.h | 25 ++++++++++++--------- lib/eventdev/version.map | 17 +++++++------- 19 files changed, 70 insertions(+), 53 deletions(-) -- 2.17.1 diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c index 8af273a01b..b2c3a6cd31 100644 --- a/drivers/event/cnxk/cn10k_eventdev.c +++ b/drivers/event/cnxk/cn10k_eventdev.c @@ -375,7 +375,7 @@ cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev) }; /* Tx modes */ - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t sso_hws_tx_adptr_enq[2][2][2][2][2][2] = { #define T(name, f5, f4, f3, f2, f1, f0, sz, flags) \ [f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_tx_adptr_enq_##name, @@ -383,7 +383,7 @@ cn10k_sso_fp_fns_set(struct rte_eventdev *event_dev) #undef T }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t sso_hws_tx_adptr_enq_seg[2][2][2][2][2][2] = { #define T(name, f5, f4, f3, f2, f1, f0, sz, flags) \ [f5][f4][f3][f2][f1][f0] = cn10k_sso_hws_tx_adptr_enq_seg_##name, @@ -858,7 +858,7 @@ cn10k_crypto_adapter_qp_del(const struct rte_eventdev *event_dev, return cnxk_crypto_adapter_qp_del(cdev, queue_pair_id); } -static struct rte_eventdev_ops cn10k_sso_dev_ops = { +static struct eventdev_ops cn10k_sso_dev_ops = { .dev_infos_get = cn10k_sso_info_get, .dev_configure = cn10k_sso_dev_configure, .queue_def_conf = cnxk_sso_queue_def_conf, diff --git a/drivers/event/cnxk/cn9k_eventdev.c b/drivers/event/cnxk/cn9k_eventdev.c index 59a3dc22a3..0e0bf7177e 100644 --- a/drivers/event/cnxk/cn9k_eventdev.c +++ b/drivers/event/cnxk/cn9k_eventdev.c @@ -507,7 +507,7 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev) }; /* Tx modes */ - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t sso_hws_tx_adptr_enq[2][2][2][2][2][2] = { #define T(name, f5, f4, f3, f2, f1, f0, sz, flags) \ [f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_tx_adptr_enq_##name, @@ -515,7 +515,7 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev) #undef T }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t sso_hws_tx_adptr_enq_seg[2][2][2][2][2][2] = { #define T(name, f5, f4, f3, f2, f1, f0, sz, flags) \ [f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_tx_adptr_enq_seg_##name, @@ -523,7 +523,7 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev) #undef T }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t sso_hws_dual_tx_adptr_enq[2][2][2][2][2][2] = { #define T(name, f5, f4, f3, f2, f1, f0, sz, flags) \ [f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_tx_adptr_enq_##name, @@ -531,7 +531,7 @@ cn9k_sso_fp_fns_set(struct rte_eventdev *event_dev) #undef T }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t sso_hws_dual_tx_adptr_enq_seg[2][2][2][2][2][2] = { #define T(name, f5, f4, f3, f2, f1, f0, sz, flags) \ [f5][f4][f3][f2][f1][f0] = cn9k_sso_hws_dual_tx_adptr_enq_seg_##name, @@ -1052,7 +1052,7 @@ cn9k_crypto_adapter_qp_del(const struct rte_eventdev *event_dev, return cnxk_crypto_adapter_qp_del(cdev, queue_pair_id); } -static struct rte_eventdev_ops cn9k_sso_dev_ops = { +static struct eventdev_ops cn9k_sso_dev_ops = { .dev_infos_get = cn9k_sso_info_get, .dev_configure = cn9k_sso_dev_configure, .queue_def_conf = cnxk_sso_queue_def_conf, diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c index 252bbd8d5e..c8742ddb2c 100644 --- a/drivers/event/dlb2/dlb2.c +++ b/drivers/event/dlb2/dlb2.c @@ -4384,7 +4384,7 @@ dlb2_entry_points_init(struct rte_eventdev *dev) struct dlb2_eventdev *dlb2; /* Expose PMD's eventdev interface */ - static struct rte_eventdev_ops dlb2_eventdev_entry_ops = { + static struct eventdev_ops dlb2_eventdev_entry_ops = { .dev_infos_get = dlb2_eventdev_info_get, .dev_configure = dlb2_eventdev_configure, .dev_start = dlb2_eventdev_start, diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c index ec74160325..9f14390d28 100644 --- a/drivers/event/dpaa/dpaa_eventdev.c +++ b/drivers/event/dpaa/dpaa_eventdev.c @@ -925,7 +925,7 @@ dpaa_eventdev_txa_enqueue(void *port, return nb_events; } -static struct rte_eventdev_ops dpaa_eventdev_ops = { +static struct eventdev_ops dpaa_eventdev_ops = { .dev_infos_get = dpaa_event_dev_info_get, .dev_configure = dpaa_event_dev_configure, .dev_start = dpaa_event_dev_start, diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index 5ccf22f77f..d577f64824 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -1015,7 +1015,7 @@ dpaa2_eventdev_txa_enqueue(void *port, return nb_events; } -static struct rte_eventdev_ops dpaa2_eventdev_ops = { +static struct eventdev_ops dpaa2_eventdev_ops = { .dev_infos_get = dpaa2_eventdev_info_get, .dev_configure = dpaa2_eventdev_configure, .dev_start = dpaa2_eventdev_start, diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 2301a4b7a0..01f060fff3 100644 --- a/drivers/event/dsw/dsw_evdev.c +++ b/drivers/event/dsw/dsw_evdev.c @@ -398,7 +398,7 @@ dsw_crypto_adapter_caps_get(const struct rte_eventdev *dev __rte_unused, return 0; } -static struct rte_eventdev_ops dsw_evdev_ops = { +static struct eventdev_ops dsw_evdev_ops = { .port_setup = dsw_port_setup, .port_def_conf = dsw_port_def_conf, .port_release = dsw_port_release, diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index b93f6ec8c6..4a8c6a13a5 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -790,7 +790,7 @@ ssovf_crypto_adapter_qp_del(const struct rte_eventdev *dev, } /* Initialize and register event driver with DPDK Application */ -static struct rte_eventdev_ops ssovf_ops = { +static struct eventdev_ops ssovf_ops = { .dev_infos_get = ssovf_info_get, .dev_configure = ssovf_configure, .queue_def_conf = ssovf_queue_def_conf, diff --git a/drivers/event/octeontx/ssovf_worker.c b/drivers/event/octeontx/ssovf_worker.c index 8b056ddc5a..2df940f0f1 100644 --- a/drivers/event/octeontx/ssovf_worker.c +++ b/drivers/event/octeontx/ssovf_worker.c @@ -343,11 +343,11 @@ ssovf_fastpath_fns_set(struct rte_eventdev *dev) dev->ca_enqueue = ssow_crypto_adapter_enqueue; - const event_tx_adapter_enqueue ssow_txa_enqueue[2][2][2][2] = { + const event_tx_adapter_enqueue_t ssow_txa_enqueue[2][2][2][2] = { #define T(name, f3, f2, f1, f0, sz, flags) \ [f3][f2][f1][f0] = sso_event_tx_adapter_enqueue_ ##name, -SSO_TX_ADPTR_ENQ_FASTPATH_FUNC + SSO_TX_ADPTR_ENQ_FASTPATH_FUNC #undef T }; diff --git a/drivers/event/octeontx2/otx2_evdev.c b/drivers/event/octeontx2/otx2_evdev.c index 38a6b651d9..f26bed334f 100644 --- a/drivers/event/octeontx2/otx2_evdev.c +++ b/drivers/event/octeontx2/otx2_evdev.c @@ -178,41 +178,41 @@ SSO_RX_ADPTR_ENQ_FASTPATH_FUNC }; /* Tx modes */ - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t ssogws_tx_adptr_enq[2][2][2][2][2][2][2] = { #define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \ [f6][f5][f4][f3][f2][f1][f0] = \ otx2_ssogws_tx_adptr_enq_ ## name, -SSO_TX_ADPTR_ENQ_FASTPATH_FUNC + SSO_TX_ADPTR_ENQ_FASTPATH_FUNC #undef T - }; + }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t ssogws_tx_adptr_enq_seg[2][2][2][2][2][2][2] = { #define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \ [f6][f5][f4][f3][f2][f1][f0] = \ otx2_ssogws_tx_adptr_enq_seg_ ## name, -SSO_TX_ADPTR_ENQ_FASTPATH_FUNC + SSO_TX_ADPTR_ENQ_FASTPATH_FUNC #undef T - }; + }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t ssogws_dual_tx_adptr_enq[2][2][2][2][2][2][2] = { #define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \ [f6][f5][f4][f3][f2][f1][f0] = \ otx2_ssogws_dual_tx_adptr_enq_ ## name, -SSO_TX_ADPTR_ENQ_FASTPATH_FUNC + SSO_TX_ADPTR_ENQ_FASTPATH_FUNC #undef T - }; + }; - const event_tx_adapter_enqueue + const event_tx_adapter_enqueue_t ssogws_dual_tx_adptr_enq_seg[2][2][2][2][2][2][2] = { #define T(name, f6, f5, f4, f3, f2, f1, f0, sz, flags) \ [f6][f5][f4][f3][f2][f1][f0] = \ otx2_ssogws_dual_tx_adptr_enq_seg_ ## name, -SSO_TX_ADPTR_ENQ_FASTPATH_FUNC + SSO_TX_ADPTR_ENQ_FASTPATH_FUNC #undef T - }; + }; event_dev->enqueue = otx2_ssogws_enq; event_dev->enqueue_burst = otx2_ssogws_enq_burst; @@ -1596,7 +1596,7 @@ otx2_sso_close(struct rte_eventdev *event_dev) } /* Initialize and register event driver with DPDK Application */ -static struct rte_eventdev_ops otx2_sso_ops = { +static struct eventdev_ops otx2_sso_ops = { .dev_infos_get = otx2_sso_info_get, .dev_configure = otx2_sso_configure, .queue_def_conf = otx2_sso_queue_def_conf, diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c index cfa9733b64..739dc64c82 100644 --- a/drivers/event/opdl/opdl_evdev.c +++ b/drivers/event/opdl/opdl_evdev.c @@ -609,7 +609,7 @@ set_do_test(const char *key __rte_unused, const char *value, void *opaque) static int opdl_probe(struct rte_vdev_device *vdev) { - static struct rte_eventdev_ops evdev_opdl_ops = { + static struct eventdev_ops evdev_opdl_ops = { .dev_configure = opdl_dev_configure, .dev_infos_get = opdl_info_get, .dev_close = opdl_close, diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index 6fd1102596..c9e17e7cb1 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -320,7 +320,7 @@ skeleton_eventdev_dump(struct rte_eventdev *dev, FILE *f) /* Initialize and register event driver with DPDK Application */ -static struct rte_eventdev_ops skeleton_eventdev_ops = { +static struct eventdev_ops skeleton_eventdev_ops = { .dev_infos_get = skeleton_eventdev_info_get, .dev_configure = skeleton_eventdev_configure, .dev_start = skeleton_eventdev_start, diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index a5e6ca22e8..9b72073322 100644 --- a/drivers/event/sw/sw_evdev.c +++ b/drivers/event/sw/sw_evdev.c @@ -945,7 +945,7 @@ static int32_t sw_sched_service_func(void *args) static int sw_probe(struct rte_vdev_device *vdev) { - static struct rte_eventdev_ops evdev_sw_ops = { + static struct eventdev_ops evdev_sw_ops = { .dev_configure = sw_dev_configure, .dev_infos_get = sw_info_get, .dev_close = sw_close, diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index 94d99f4903..682b61cff0 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -99,6 +99,7 @@ extern struct rte_eventdev *rte_eventdevs; * @return * - The rte_eventdev structure pointer for the given device ID. */ +__rte_internal static inline struct rte_eventdev * rte_event_pmd_get_named_dev(const char *name) { @@ -127,6 +128,7 @@ rte_event_pmd_get_named_dev(const char *name) * @return * - If the device index is valid (1) or not (0). */ +__rte_internal static inline unsigned rte_event_pmd_is_valid_dev(uint8_t dev_id) { @@ -1056,7 +1058,7 @@ typedef int (*eventdev_eth_tx_adapter_stats_reset_t)(uint8_t id, const struct rte_eventdev *dev); /** Event device operations function pointer table */ -struct rte_eventdev_ops { +struct eventdev_ops { eventdev_info_get_t dev_infos_get; /**< Get device info. */ eventdev_configure_t dev_configure; /**< Configure device. */ eventdev_start_t dev_start; /**< Start device. */ @@ -1174,6 +1176,7 @@ struct rte_eventdev_ops { * @return * - Slot in the rte_dev_devices array for a new device; */ +__rte_internal struct rte_eventdev * rte_event_pmd_allocate(const char *name, int socket_id); @@ -1185,6 +1188,7 @@ rte_event_pmd_allocate(const char *name, int socket_id); * @return * - 0 on success, negative on error */ +__rte_internal int rte_event_pmd_release(struct rte_eventdev *eventdev); diff --git a/lib/eventdev/eventdev_pmd_pci.h b/lib/eventdev/eventdev_pmd_pci.h index 1545b240f2..2f12a5eb24 100644 --- a/lib/eventdev/eventdev_pmd_pci.h +++ b/lib/eventdev/eventdev_pmd_pci.h @@ -31,7 +31,7 @@ typedef int (*eventdev_pmd_pci_callback_t)(struct rte_eventdev *dev); * interface. Same as rte_event_pmd_pci_probe, except caller can specify * the name. */ -__rte_experimental +__rte_internal static inline int rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev, @@ -85,6 +85,7 @@ rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, * Wrapper for use by pci drivers as a .probe function to attach to a event * interface. */ +__rte_internal static inline int rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev, @@ -108,6 +109,7 @@ rte_event_pmd_pci_probe(struct rte_pci_driver *pci_drv, * Wrapper for use by pci drivers as a .remove function to detach a event * interface. */ +__rte_internal static inline int rte_event_pmd_pci_remove(struct rte_pci_device *pci_dev, eventdev_pmd_pci_callback_t devuninit) diff --git a/lib/eventdev/eventdev_pmd_vdev.h b/lib/eventdev/eventdev_pmd_vdev.h index 2d33924e6c..d9ee7277dd 100644 --- a/lib/eventdev/eventdev_pmd_vdev.h +++ b/lib/eventdev/eventdev_pmd_vdev.h @@ -37,6 +37,7 @@ * - Eventdev pointer if device is successfully created. * - NULL if device cannot be created. */ +__rte_internal static inline struct rte_eventdev * rte_event_pmd_vdev_init(const char *name, size_t dev_private_size, int socket_id) @@ -74,6 +75,7 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size, * @return * - 0 on success, negative on error */ +__rte_internal static inline int rte_event_pmd_vdev_uninit(const char *name) { diff --git a/lib/eventdev/meson.build b/lib/eventdev/meson.build index 32abeba794..523ea9ccae 100644 --- a/lib/eventdev/meson.build +++ b/lib/eventdev/meson.build @@ -27,5 +27,11 @@ headers = files( 'rte_event_crypto_adapter.h', 'rte_event_eth_tx_adapter.h', ) +driver_sdk_headers += files( + 'eventdev_pmd.h', + 'eventdev_pmd_pci.h', + 'eventdev_pmd_vdev.h', +) + deps += ['ring', 'ethdev', 'hash', 'mempool', 'mbuf', 'timer', 'cryptodev'] deps += ['telemetry'] diff --git a/lib/eventdev/rte_event_crypto_adapter.h b/lib/eventdev/rte_event_crypto_adapter.h index f8c6cca87c..431d05b6ed 100644 --- a/lib/eventdev/rte_event_crypto_adapter.h +++ b/lib/eventdev/rte_event_crypto_adapter.h @@ -171,7 +171,6 @@ extern "C" { #include #include "rte_eventdev.h" -#include "eventdev_pmd.h" /** * Crypto event adapter mode diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index a9c496fb62..0c701888d5 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1324,7 +1324,7 @@ int rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id, uint32_t *caps); -struct rte_eventdev_ops; +struct eventdev_ops; struct rte_eventdev; typedef uint16_t (*event_enqueue_t)(void *port, const struct rte_event *ev); @@ -1342,18 +1342,21 @@ typedef uint16_t (*event_dequeue_burst_t)(void *port, struct rte_event ev[], uint16_t nb_events, uint64_t timeout_ticks); /**< @internal Dequeue burst of events from port of a device */ -typedef uint16_t (*event_tx_adapter_enqueue)(void *port, - struct rte_event ev[], uint16_t nb_events); +typedef uint16_t (*event_tx_adapter_enqueue_t)(void *port, + struct rte_event ev[], + uint16_t nb_events); /**< @internal Enqueue burst of events on port of a device */ -typedef uint16_t (*event_tx_adapter_enqueue_same_dest)(void *port, - struct rte_event ev[], uint16_t nb_events); +typedef uint16_t (*event_tx_adapter_enqueue_same_dest_t)(void *port, + struct rte_event ev[], + uint16_t nb_events); /**< @internal Enqueue burst of events on port of a device supporting * burst having same destination Ethernet port & Tx queue. */ -typedef uint16_t (*event_crypto_adapter_enqueue)(void *port, - struct rte_event ev[], uint16_t nb_events); +typedef uint16_t (*event_crypto_adapter_enqueue_t)(void *port, + struct rte_event ev[], + uint16_t nb_events); /**< @internal Enqueue burst of events on crypto adapter */ #define RTE_EVENTDEV_NAME_MAX_LEN (64) @@ -1421,15 +1424,15 @@ struct rte_eventdev { /**< Pointer to PMD dequeue function. */ event_dequeue_burst_t dequeue_burst; /**< Pointer to PMD dequeue burst function. */ - event_tx_adapter_enqueue_same_dest txa_enqueue_same_dest; + event_tx_adapter_enqueue_same_dest_t txa_enqueue_same_dest; /**< Pointer to PMD eth Tx adapter burst enqueue function with * events destined to same Eth port & Tx queue. */ - event_tx_adapter_enqueue txa_enqueue; + event_tx_adapter_enqueue_t txa_enqueue; /**< Pointer to PMD eth Tx adapter enqueue function. */ struct rte_eventdev_data *data; /**< Pointer to device data */ - struct rte_eventdev_ops *dev_ops; + struct eventdev_ops *dev_ops; /**< Functions exported by PMD */ struct rte_device *dev; /**< Device info. supplied by probing */ @@ -1438,7 +1441,7 @@ struct rte_eventdev { uint8_t attached : 1; /**< Flag indicating the device is attached */ - event_crypto_adapter_enqueue ca_enqueue; + event_crypto_adapter_enqueue_t ca_enqueue; /**< Pointer to PMD crypto adapter enqueue function. */ uint64_t reserved_64s[4]; /**< Reserved for future fields */ diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map index 88625621ec..5f1fe412a4 100644 --- a/lib/eventdev/version.map +++ b/lib/eventdev/version.map @@ -55,12 +55,6 @@ DPDK_22 { rte_event_eth_tx_adapter_stats_get; rte_event_eth_tx_adapter_stats_reset; rte_event_eth_tx_adapter_stop; - rte_event_pmd_allocate; - rte_event_pmd_pci_probe; - rte_event_pmd_pci_remove; - rte_event_pmd_release; - rte_event_pmd_vdev_init; - rte_event_pmd_vdev_uninit; rte_event_port_attr_get; rte_event_port_default_conf_get; rte_event_port_link; @@ -136,8 +130,6 @@ EXPERIMENTAL { # changed in 20.11 __rte_eventdev_trace_port_setup; - # added in 20.11 - rte_event_pmd_pci_probe_named; #added in 21.05 rte_event_vector_pool_create; @@ -150,4 +142,13 @@ INTERNAL { global: rte_event_pmd_selftest_seqn_dynfield_offset; + rte_event_pmd_allocate; + rte_event_pmd_get_named_dev; + rte_event_pmd_is_valid_dev; + rte_event_pmd_pci_probe; + rte_event_pmd_pci_probe_named; + rte_event_pmd_pci_remove; + rte_event_pmd_release; + rte_event_pmd_vdev_init; + rte_event_pmd_vdev_uninit; }; From patchwork Sun Oct 3 08:26:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100379 X-Patchwork-Delegate: jerinj@marvell.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 1BA3AA034F; Sun, 3 Oct 2021 10:31:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9AD2640698; Sun, 3 Oct 2021 10:31:47 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 45B164068E for ; Sun, 3 Oct 2021 10:31:45 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1935gf3R021152 for ; Sun, 3 Oct 2021 01:31:44 -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=0JhQt4YmHSiK0Qh+kIH9vEQLmKX+yX3WiHI0bQ+/T+E=; b=ZFTPSMdUfE980Gy0RN2TO1Cfb+6HMsPQoAKFFcQs0rhqE4mxUn/++wWdMlqpB0q/XVgL 22eozqfmIqpn5j5xtIN1tykr3qfhAgymnsI5mP2NDmyglTeB3qOnTeZCk//OYfg3XDNT 5fwPSt0z9lm8k9cwTP4DHZCIy2gi5oFgq0OQngVU4roQfPsQl9uYTdMtAWn0SqHov4SU +5Mz4Bb+iD/kkHqbkXiDg7EJ0ITCmrCkpGRfzHpCtJcbhh5NTLFUs+RG9oNr2bLV0mc9 T+n7CZBwaCNwiTzChsAjlWob3b6gX04+VNuE5vEWs2U5DRf+jJhZT4wt9HBPqmfd8Bw9 HQ== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4mg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Sun, 03 Oct 2021 01:31:44 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:31:42 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:31:41 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id BDFBD3F7044; Sun, 3 Oct 2021 01:31:40 -0700 (PDT) From: To: CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:56:58 +0530 Message-ID: <20211003082710.8398-2-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: 0nj9ZcqpxbcoPiHFqPlpp5Wap-X3jycS X-Proofpoint-ORIG-GUID: 0nj9ZcqpxbcoPiHFqPlpp5Wap-X3jycS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 02/13] eventdev: separate internal structures 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 Create rte_eventdev_core.h and move all the internal data structures to this file. These structures are mostly used by drivers, but they need to be in the public header file as they are accessed by datapath inline functions for performance reasons. The accessibility of these data structures is not changed. Signed-off-by: Pavan Nikhilesh --- lib/eventdev/eventdev_pmd.h | 3 - lib/eventdev/meson.build | 3 + lib/eventdev/rte_eventdev.h | 718 +++++++++++++------------------ lib/eventdev/rte_eventdev_core.h | 138 ++++++ 4 files changed, 437 insertions(+), 425 deletions(-) create mode 100644 lib/eventdev/rte_eventdev_core.h diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index 682b61cff0..7eb2aa0520 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -87,9 +87,6 @@ struct rte_eventdev_global { uint8_t nb_devs; /**< Number of devices found */ }; -extern struct rte_eventdev *rte_eventdevs; -/** The pool of rte_eventdev structures. */ - /** * Get the rte_eventdev structure device pointer for the named device. * diff --git a/lib/eventdev/meson.build b/lib/eventdev/meson.build index 523ea9ccae..8b51fde361 100644 --- a/lib/eventdev/meson.build +++ b/lib/eventdev/meson.build @@ -27,6 +27,9 @@ headers = files( 'rte_event_crypto_adapter.h', 'rte_event_eth_tx_adapter.h', ) +indirect_headers += files( + 'rte_eventdev_core.h', +) driver_sdk_headers += files( 'eventdev_pmd.h', 'eventdev_pmd_pci.h', diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index 0c701888d5..1b11d4576d 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1324,317 +1324,6 @@ int rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id, uint32_t *caps); -struct eventdev_ops; -struct rte_eventdev; - -typedef uint16_t (*event_enqueue_t)(void *port, const struct rte_event *ev); -/**< @internal Enqueue event on port of a device */ - -typedef uint16_t (*event_enqueue_burst_t)(void *port, - const struct rte_event ev[], uint16_t nb_events); -/**< @internal Enqueue burst of events on port of a device */ - -typedef uint16_t (*event_dequeue_t)(void *port, struct rte_event *ev, - uint64_t timeout_ticks); -/**< @internal Dequeue event from port of a device */ - -typedef uint16_t (*event_dequeue_burst_t)(void *port, struct rte_event ev[], - uint16_t nb_events, uint64_t timeout_ticks); -/**< @internal Dequeue burst of events from port of a device */ - -typedef uint16_t (*event_tx_adapter_enqueue_t)(void *port, - struct rte_event ev[], - uint16_t nb_events); -/**< @internal Enqueue burst of events on port of a device */ - -typedef uint16_t (*event_tx_adapter_enqueue_same_dest_t)(void *port, - struct rte_event ev[], - uint16_t nb_events); -/**< @internal Enqueue burst of events on port of a device supporting - * burst having same destination Ethernet port & Tx queue. - */ - -typedef uint16_t (*event_crypto_adapter_enqueue_t)(void *port, - struct rte_event ev[], - uint16_t nb_events); -/**< @internal Enqueue burst of events on crypto adapter */ - -#define RTE_EVENTDEV_NAME_MAX_LEN (64) -/**< @internal Max length of name of event PMD */ - -/** - * @internal - * The data part, with no function pointers, associated with each device. - * - * This structure is safe to place in shared memory to be common among - * different processes in a multi-process configuration. - */ -struct rte_eventdev_data { - int socket_id; - /**< Socket ID where memory is allocated */ - uint8_t dev_id; - /**< Device ID for this instance */ - uint8_t nb_queues; - /**< Number of event queues. */ - uint8_t nb_ports; - /**< Number of event ports. */ - void **ports; - /**< Array of pointers to ports. */ - struct rte_event_port_conf *ports_cfg; - /**< Array of port configuration structures. */ - struct rte_event_queue_conf *queues_cfg; - /**< Array of queue configuration structures. */ - uint16_t *links_map; - /**< Memory to store queues to port connections. */ - void *dev_private; - /**< PMD-specific private data */ - uint32_t event_dev_cap; - /**< Event device capabilities(RTE_EVENT_DEV_CAP_)*/ - struct rte_event_dev_config dev_conf; - /**< Configuration applied to device. */ - uint8_t service_inited; - /* Service initialization state */ - uint32_t service_id; - /* Service ID*/ - void *dev_stop_flush_arg; - /**< User-provided argument for event flush function */ - - RTE_STD_C11 - uint8_t dev_started : 1; - /**< Device state: STARTED(1)/STOPPED(0) */ - - char name[RTE_EVENTDEV_NAME_MAX_LEN]; - /**< Unique identifier name */ - - uint64_t reserved_64s[4]; /**< Reserved for future fields */ - void *reserved_ptrs[4]; /**< Reserved for future fields */ -} __rte_cache_aligned; - -/** @internal The data structure associated with each event device. */ -struct rte_eventdev { - event_enqueue_t enqueue; - /**< Pointer to PMD enqueue function. */ - event_enqueue_burst_t enqueue_burst; - /**< Pointer to PMD enqueue burst function. */ - event_enqueue_burst_t enqueue_new_burst; - /**< Pointer to PMD enqueue burst function(op new variant) */ - event_enqueue_burst_t enqueue_forward_burst; - /**< Pointer to PMD enqueue burst function(op forward variant) */ - event_dequeue_t dequeue; - /**< Pointer to PMD dequeue function. */ - event_dequeue_burst_t dequeue_burst; - /**< Pointer to PMD dequeue burst function. */ - event_tx_adapter_enqueue_same_dest_t txa_enqueue_same_dest; - /**< Pointer to PMD eth Tx adapter burst enqueue function with - * events destined to same Eth port & Tx queue. - */ - event_tx_adapter_enqueue_t txa_enqueue; - /**< Pointer to PMD eth Tx adapter enqueue function. */ - struct rte_eventdev_data *data; - /**< Pointer to device data */ - struct eventdev_ops *dev_ops; - /**< Functions exported by PMD */ - struct rte_device *dev; - /**< Device info. supplied by probing */ - - RTE_STD_C11 - uint8_t attached : 1; - /**< Flag indicating the device is attached */ - - event_crypto_adapter_enqueue_t ca_enqueue; - /**< Pointer to PMD crypto adapter enqueue function. */ - - uint64_t reserved_64s[4]; /**< Reserved for future fields */ - void *reserved_ptrs[3]; /**< Reserved for future fields */ -} __rte_cache_aligned; - -extern struct rte_eventdev *rte_eventdevs; -/** @internal The pool of rte_eventdev structures. */ - -static __rte_always_inline uint16_t -__rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, - const struct rte_event ev[], uint16_t nb_events, - const event_enqueue_burst_t fn) -{ - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; - -#ifdef RTE_LIBRTE_EVENTDEV_DEBUG - if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { - rte_errno = EINVAL; - return 0; - } - - if (port_id >= dev->data->nb_ports) { - rte_errno = EINVAL; - return 0; - } -#endif - rte_eventdev_trace_enq_burst(dev_id, port_id, ev, nb_events, fn); - /* - * Allow zero cost non burst mode routine invocation if application - * requests nb_events as const one - */ - if (nb_events == 1) - return (*dev->enqueue)(dev->data->ports[port_id], ev); - else - return fn(dev->data->ports[port_id], ev, nb_events); -} - -/** - * Enqueue a burst of events objects or an event object supplied in *rte_event* - * structure on an event device designated by its *dev_id* through the event - * port specified by *port_id*. Each event object specifies the event queue on - * which it will be enqueued. - * - * The *nb_events* parameter is the number of event objects to enqueue which are - * supplied in the *ev* array of *rte_event* structure. - * - * Event operations RTE_EVENT_OP_FORWARD and RTE_EVENT_OP_RELEASE must only be - * enqueued to the same port that their associated events were dequeued from. - * - * The rte_event_enqueue_burst() function returns the number of - * events objects it actually enqueued. A return value equal to *nb_events* - * means that all event objects have been enqueued. - * - * @param dev_id - * The identifier of the device. - * @param port_id - * The identifier of the event port. - * @param ev - * Points to an array of *nb_events* objects of type *rte_event* structure - * which contain the event object enqueue operations to be processed. - * @param nb_events - * The number of event objects to enqueue, typically number of - * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) - * available for this port. - * - * @return - * The number of event objects actually enqueued on the event device. The - * return value can be less than the value of the *nb_events* parameter when - * the event devices queue is full or if invalid parameters are specified in a - * *rte_event*. If the return value is less than *nb_events*, the remaining - * events at the end of ev[] are not consumed and the caller has to take care - * of them, and rte_errno is set accordingly. Possible errno values include: - * - EINVAL The port ID is invalid, device ID is invalid, an event's queue - * ID is invalid, or an event's sched type doesn't match the - * capabilities of the destination queue. - * - ENOSPC The event port was backpressured and unable to enqueue - * one or more events. This error code is only applicable to - * closed systems. - * @see rte_event_port_attr_get(), RTE_EVENT_PORT_ATTR_ENQ_DEPTH - */ -static inline uint16_t -rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, - const struct rte_event ev[], uint16_t nb_events) -{ - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; - - return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, - dev->enqueue_burst); -} - -/** - * Enqueue a burst of events objects of operation type *RTE_EVENT_OP_NEW* on - * an event device designated by its *dev_id* through the event port specified - * by *port_id*. - * - * Provides the same functionality as rte_event_enqueue_burst(), expect that - * application can use this API when the all objects in the burst contains - * the enqueue operation of the type *RTE_EVENT_OP_NEW*. This specialized - * function can provide the additional hint to the PMD and optimize if possible. - * - * The rte_event_enqueue_new_burst() result is undefined if the enqueue burst - * has event object of operation type != RTE_EVENT_OP_NEW. - * - * @param dev_id - * The identifier of the device. - * @param port_id - * The identifier of the event port. - * @param ev - * Points to an array of *nb_events* objects of type *rte_event* structure - * which contain the event object enqueue operations to be processed. - * @param nb_events - * The number of event objects to enqueue, typically number of - * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) - * available for this port. - * - * @return - * The number of event objects actually enqueued on the event device. The - * return value can be less than the value of the *nb_events* parameter when - * the event devices queue is full or if invalid parameters are specified in a - * *rte_event*. If the return value is less than *nb_events*, the remaining - * events at the end of ev[] are not consumed and the caller has to take care - * of them, and rte_errno is set accordingly. Possible errno values include: - * - EINVAL The port ID is invalid, device ID is invalid, an event's queue - * ID is invalid, or an event's sched type doesn't match the - * capabilities of the destination queue. - * - ENOSPC The event port was backpressured and unable to enqueue - * one or more events. This error code is only applicable to - * closed systems. - * @see rte_event_port_attr_get(), RTE_EVENT_PORT_ATTR_ENQ_DEPTH - * @see rte_event_enqueue_burst() - */ -static inline uint16_t -rte_event_enqueue_new_burst(uint8_t dev_id, uint8_t port_id, - const struct rte_event ev[], uint16_t nb_events) -{ - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; - - return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, - dev->enqueue_new_burst); -} - -/** - * Enqueue a burst of events objects of operation type *RTE_EVENT_OP_FORWARD* - * on an event device designated by its *dev_id* through the event port - * specified by *port_id*. - * - * Provides the same functionality as rte_event_enqueue_burst(), expect that - * application can use this API when the all objects in the burst contains - * the enqueue operation of the type *RTE_EVENT_OP_FORWARD*. This specialized - * function can provide the additional hint to the PMD and optimize if possible. - * - * The rte_event_enqueue_new_burst() result is undefined if the enqueue burst - * has event object of operation type != RTE_EVENT_OP_FORWARD. - * - * @param dev_id - * The identifier of the device. - * @param port_id - * The identifier of the event port. - * @param ev - * Points to an array of *nb_events* objects of type *rte_event* structure - * which contain the event object enqueue operations to be processed. - * @param nb_events - * The number of event objects to enqueue, typically number of - * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) - * available for this port. - * - * @return - * The number of event objects actually enqueued on the event device. The - * return value can be less than the value of the *nb_events* parameter when - * the event devices queue is full or if invalid parameters are specified in a - * *rte_event*. If the return value is less than *nb_events*, the remaining - * events at the end of ev[] are not consumed and the caller has to take care - * of them, and rte_errno is set accordingly. Possible errno values include: - * - EINVAL The port ID is invalid, device ID is invalid, an event's queue - * ID is invalid, or an event's sched type doesn't match the - * capabilities of the destination queue. - * - ENOSPC The event port was backpressured and unable to enqueue - * one or more events. This error code is only applicable to - * closed systems. - * @see rte_event_port_attr_get(), RTE_EVENT_PORT_ATTR_ENQ_DEPTH - * @see rte_event_enqueue_burst() - */ -static inline uint16_t -rte_event_enqueue_forward_burst(uint8_t dev_id, uint8_t port_id, - const struct rte_event ev[], uint16_t nb_events) -{ - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; - - return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, - dev->enqueue_forward_burst); -} - /** * Converts nanoseconds to *timeout_ticks* value for rte_event_dequeue_burst() * @@ -1665,124 +1354,27 @@ rte_event_dequeue_timeout_ticks(uint8_t dev_id, uint64_t ns, uint64_t *timeout_ticks); /** - * Dequeue a burst of events objects or an event object from the event port - * designated by its *event_port_id*, on an event device designated - * by its *dev_id*. - * - * rte_event_dequeue_burst() does not dictate the specifics of scheduling - * algorithm as each eventdev driver may have different criteria to schedule - * an event. However, in general, from an application perspective scheduler may - * use the following scheme to dispatch an event to the port. - * - * 1) Selection of event queue based on - * a) The list of event queues are linked to the event port. - * b) If the device has RTE_EVENT_DEV_CAP_QUEUE_QOS capability then event - * queue selection from list is based on event queue priority relative to - * other event queue supplied as *priority* in rte_event_queue_setup() - * c) If the device has RTE_EVENT_DEV_CAP_EVENT_QOS capability then event - * queue selection from the list is based on event priority supplied as - * *priority* in rte_event_enqueue_burst() - * 2) Selection of event - * a) The number of flows available in selected event queue. - * b) Schedule type method associated with the event - * - * The *nb_events* parameter is the maximum number of event objects to dequeue - * which are returned in the *ev* array of *rte_event* structure. + * Link multiple source event queues supplied in *queues* to the destination + * event port designated by its *port_id* with associated service priority + * supplied in *priorities* on the event device designated by its *dev_id*. * - * The rte_event_dequeue_burst() function returns the number of events objects - * it actually dequeued. A return value equal to *nb_events* means that all - * event objects have been dequeued. + * The link establishment shall enable the event port *port_id* from + * receiving events from the specified event queue(s) supplied in *queues* * - * The number of events dequeued is the number of scheduler contexts held by - * this port. These contexts are automatically released in the next - * rte_event_dequeue_burst() invocation if the port supports implicit - * releases, or invoking rte_event_enqueue_burst() with RTE_EVENT_OP_RELEASE - * operation can be used to release the contexts early. + * An event queue may link to one or more event ports. + * The number of links can be established from an event queue to event port is + * implementation defined. * - * Event operations RTE_EVENT_OP_FORWARD and RTE_EVENT_OP_RELEASE must only be - * enqueued to the same port that their associated events were dequeued from. + * Event queue(s) to event port link establishment can be changed at runtime + * without re-configuring the device to support scaling and to reduce the + * latency of critical work by establishing the link with more event ports + * at runtime. * * @param dev_id * The identifier of the device. + * * @param port_id - * The identifier of the event port. - * @param[out] ev - * Points to an array of *nb_events* objects of type *rte_event* structure - * for output to be populated with the dequeued event objects. - * @param nb_events - * The maximum number of event objects to dequeue, typically number of - * rte_event_port_dequeue_depth() available for this port. - * - * @param timeout_ticks - * - 0 no-wait, returns immediately if there is no event. - * - >0 wait for the event, if the device is configured with - * RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT then this function will wait until - * at least one event is available or *timeout_ticks* time. - * if the device is not configured with RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT - * then this function will wait until the event available or - * *dequeue_timeout_ns* ns which was previously supplied to - * rte_event_dev_configure() - * - * @return - * The number of event objects actually dequeued from the port. The return - * value can be less than the value of the *nb_events* parameter when the - * event port's queue is not full. - * - * @see rte_event_port_dequeue_depth() - */ -static inline uint16_t -rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], - uint16_t nb_events, uint64_t timeout_ticks) -{ - struct rte_eventdev *dev = &rte_eventdevs[dev_id]; - -#ifdef RTE_LIBRTE_EVENTDEV_DEBUG - if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { - rte_errno = EINVAL; - return 0; - } - - if (port_id >= dev->data->nb_ports) { - rte_errno = EINVAL; - return 0; - } -#endif - rte_eventdev_trace_deq_burst(dev_id, port_id, ev, nb_events); - /* - * Allow zero cost non burst mode routine invocation if application - * requests nb_events as const one - */ - if (nb_events == 1) - return (*dev->dequeue)( - dev->data->ports[port_id], ev, timeout_ticks); - else - return (*dev->dequeue_burst)( - dev->data->ports[port_id], ev, nb_events, - timeout_ticks); -} - -/** - * Link multiple source event queues supplied in *queues* to the destination - * event port designated by its *port_id* with associated service priority - * supplied in *priorities* on the event device designated by its *dev_id*. - * - * The link establishment shall enable the event port *port_id* from - * receiving events from the specified event queue(s) supplied in *queues* - * - * An event queue may link to one or more event ports. - * The number of links can be established from an event queue to event port is - * implementation defined. - * - * Event queue(s) to event port link establishment can be changed at runtime - * without re-configuring the device to support scaling and to reduce the - * latency of critical work by establishing the link with more event ports - * at runtime. - * - * @param dev_id - * The identifier of the device. - * - * @param port_id - * Event port identifier to select the destination port to link. + * Event port identifier to select the destination port to link. * * @param queues * Points to an array of *nb_links* event queues to be linked @@ -2148,6 +1740,288 @@ rte_event_vector_pool_create(const char *name, unsigned int n, unsigned int cache_size, uint16_t nb_elem, int socket_id); +#include + +static __rte_always_inline uint16_t +__rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, + const struct rte_event ev[], uint16_t nb_events, + const event_enqueue_burst_t fn) +{ + const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + +#ifdef RTE_LIBRTE_EVENTDEV_DEBUG + if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { + rte_errno = EINVAL; + return 0; + } + + if (port_id >= dev->data->nb_ports) { + rte_errno = EINVAL; + return 0; + } +#endif + rte_eventdev_trace_enq_burst(dev_id, port_id, ev, nb_events, fn); + /* + * Allow zero cost non burst mode routine invocation if application + * requests nb_events as const one + */ + if (nb_events == 1) + return (*dev->enqueue)(dev->data->ports[port_id], ev); + else + return fn(dev->data->ports[port_id], ev, nb_events); +} + +/** + * Enqueue a burst of events objects or an event object supplied in *rte_event* + * structure on an event device designated by its *dev_id* through the event + * port specified by *port_id*. Each event object specifies the event queue on + * which it will be enqueued. + * + * The *nb_events* parameter is the number of event objects to enqueue which are + * supplied in the *ev* array of *rte_event* structure. + * + * Event operations RTE_EVENT_OP_FORWARD and RTE_EVENT_OP_RELEASE must only be + * enqueued to the same port that their associated events were dequeued from. + * + * The rte_event_enqueue_burst() function returns the number of + * events objects it actually enqueued. A return value equal to *nb_events* + * means that all event objects have been enqueued. + * + * @param dev_id + * The identifier of the device. + * @param port_id + * The identifier of the event port. + * @param ev + * Points to an array of *nb_events* objects of type *rte_event* structure + * which contain the event object enqueue operations to be processed. + * @param nb_events + * The number of event objects to enqueue, typically number of + * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) + * available for this port. + * + * @return + * The number of event objects actually enqueued on the event device. The + * return value can be less than the value of the *nb_events* parameter when + * the event devices queue is full or if invalid parameters are specified in a + * *rte_event*. If the return value is less than *nb_events*, the remaining + * events at the end of ev[] are not consumed and the caller has to take care + * of them, and rte_errno is set accordingly. Possible errno values include: + * - EINVAL The port ID is invalid, device ID is invalid, an event's queue + * ID is invalid, or an event's sched type doesn't match the + * capabilities of the destination queue. + * - ENOSPC The event port was backpressured and unable to enqueue + * one or more events. This error code is only applicable to + * closed systems. + * @see rte_event_port_attr_get(), RTE_EVENT_PORT_ATTR_ENQ_DEPTH + */ +static inline uint16_t +rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, + const struct rte_event ev[], uint16_t nb_events) +{ + const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + + return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, + dev->enqueue_burst); +} + +/** + * Enqueue a burst of events objects of operation type *RTE_EVENT_OP_NEW* on + * an event device designated by its *dev_id* through the event port specified + * by *port_id*. + * + * Provides the same functionality as rte_event_enqueue_burst(), expect that + * application can use this API when the all objects in the burst contains + * the enqueue operation of the type *RTE_EVENT_OP_NEW*. This specialized + * function can provide the additional hint to the PMD and optimize if possible. + * + * The rte_event_enqueue_new_burst() result is undefined if the enqueue burst + * has event object of operation type != RTE_EVENT_OP_NEW. + * + * @param dev_id + * The identifier of the device. + * @param port_id + * The identifier of the event port. + * @param ev + * Points to an array of *nb_events* objects of type *rte_event* structure + * which contain the event object enqueue operations to be processed. + * @param nb_events + * The number of event objects to enqueue, typically number of + * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) + * available for this port. + * + * @return + * The number of event objects actually enqueued on the event device. The + * return value can be less than the value of the *nb_events* parameter when + * the event devices queue is full or if invalid parameters are specified in a + * *rte_event*. If the return value is less than *nb_events*, the remaining + * events at the end of ev[] are not consumed and the caller has to take care + * of them, and rte_errno is set accordingly. Possible errno values include: + * - EINVAL The port ID is invalid, device ID is invalid, an event's queue + * ID is invalid, or an event's sched type doesn't match the + * capabilities of the destination queue. + * - ENOSPC The event port was backpressured and unable to enqueue + * one or more events. This error code is only applicable to + * closed systems. + * @see rte_event_port_attr_get(), RTE_EVENT_PORT_ATTR_ENQ_DEPTH + * @see rte_event_enqueue_burst() + */ +static inline uint16_t +rte_event_enqueue_new_burst(uint8_t dev_id, uint8_t port_id, + const struct rte_event ev[], uint16_t nb_events) +{ + const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + + return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, + dev->enqueue_new_burst); +} + +/** + * Enqueue a burst of events objects of operation type *RTE_EVENT_OP_FORWARD* + * on an event device designated by its *dev_id* through the event port + * specified by *port_id*. + * + * Provides the same functionality as rte_event_enqueue_burst(), expect that + * application can use this API when the all objects in the burst contains + * the enqueue operation of the type *RTE_EVENT_OP_FORWARD*. This specialized + * function can provide the additional hint to the PMD and optimize if possible. + * + * The rte_event_enqueue_new_burst() result is undefined if the enqueue burst + * has event object of operation type != RTE_EVENT_OP_FORWARD. + * + * @param dev_id + * The identifier of the device. + * @param port_id + * The identifier of the event port. + * @param ev + * Points to an array of *nb_events* objects of type *rte_event* structure + * which contain the event object enqueue operations to be processed. + * @param nb_events + * The number of event objects to enqueue, typically number of + * rte_event_port_attr_get(...RTE_EVENT_PORT_ATTR_ENQ_DEPTH...) + * available for this port. + * + * @return + * The number of event objects actually enqueued on the event device. The + * return value can be less than the value of the *nb_events* parameter when + * the event devices queue is full or if invalid parameters are specified in a + * *rte_event*. If the return value is less than *nb_events*, the remaining + * events at the end of ev[] are not consumed and the caller has to take care + * of them, and rte_errno is set accordingly. Possible errno values include: + * - EINVAL The port ID is invalid, device ID is invalid, an event's queue + * ID is invalid, or an event's sched type doesn't match the + * capabilities of the destination queue. + * - ENOSPC The event port was backpressured and unable to enqueue + * one or more events. This error code is only applicable to + * closed systems. + * @see rte_event_port_attr_get(), RTE_EVENT_PORT_ATTR_ENQ_DEPTH + * @see rte_event_enqueue_burst() + */ +static inline uint16_t +rte_event_enqueue_forward_burst(uint8_t dev_id, uint8_t port_id, + const struct rte_event ev[], uint16_t nb_events) +{ + const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + + return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, + dev->enqueue_forward_burst); +} + +/** + * Dequeue a burst of events objects or an event object from the event port + * designated by its *event_port_id*, on an event device designated + * by its *dev_id*. + * + * rte_event_dequeue_burst() does not dictate the specifics of scheduling + * algorithm as each eventdev driver may have different criteria to schedule + * an event. However, in general, from an application perspective scheduler may + * use the following scheme to dispatch an event to the port. + * + * 1) Selection of event queue based on + * a) The list of event queues are linked to the event port. + * b) If the device has RTE_EVENT_DEV_CAP_QUEUE_QOS capability then event + * queue selection from list is based on event queue priority relative to + * other event queue supplied as *priority* in rte_event_queue_setup() + * c) If the device has RTE_EVENT_DEV_CAP_EVENT_QOS capability then event + * queue selection from the list is based on event priority supplied as + * *priority* in rte_event_enqueue_burst() + * 2) Selection of event + * a) The number of flows available in selected event queue. + * b) Schedule type method associated with the event + * + * The *nb_events* parameter is the maximum number of event objects to dequeue + * which are returned in the *ev* array of *rte_event* structure. + * + * The rte_event_dequeue_burst() function returns the number of events objects + * it actually dequeued. A return value equal to *nb_events* means that all + * event objects have been dequeued. + * + * The number of events dequeued is the number of scheduler contexts held by + * this port. These contexts are automatically released in the next + * rte_event_dequeue_burst() invocation if the port supports implicit + * releases, or invoking rte_event_enqueue_burst() with RTE_EVENT_OP_RELEASE + * operation can be used to release the contexts early. + * + * Event operations RTE_EVENT_OP_FORWARD and RTE_EVENT_OP_RELEASE must only be + * enqueued to the same port that their associated events were dequeued from. + * + * @param dev_id + * The identifier of the device. + * @param port_id + * The identifier of the event port. + * @param[out] ev + * Points to an array of *nb_events* objects of type *rte_event* structure + * for output to be populated with the dequeued event objects. + * @param nb_events + * The maximum number of event objects to dequeue, typically number of + * rte_event_port_dequeue_depth() available for this port. + * + * @param timeout_ticks + * - 0 no-wait, returns immediately if there is no event. + * - >0 wait for the event, if the device is configured with + * RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT then this function will wait until + * at least one event is available or *timeout_ticks* time. + * if the device is not configured with RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT + * then this function will wait until the event available or + * *dequeue_timeout_ns* ns which was previously supplied to + * rte_event_dev_configure() + * + * @return + * The number of event objects actually dequeued from the port. The return + * value can be less than the value of the *nb_events* parameter when the + * event port's queue is not full. + * + * @see rte_event_port_dequeue_depth() + */ +static inline uint16_t +rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], + uint16_t nb_events, uint64_t timeout_ticks) +{ + struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + +#ifdef RTE_LIBRTE_EVENTDEV_DEBUG + if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { + rte_errno = EINVAL; + return 0; + } + + if (port_id >= dev->data->nb_ports) { + rte_errno = EINVAL; + return 0; + } +#endif + rte_eventdev_trace_deq_burst(dev_id, port_id, ev, nb_events); + /* + * Allow zero cost non burst mode routine invocation if application + * requests nb_events as const one + */ + if (nb_events == 1) + return (*dev->dequeue)(dev->data->ports[port_id], ev, + timeout_ticks); + else + return (*dev->dequeue_burst)(dev->data->ports[port_id], ev, + nb_events, timeout_ticks); +} + #ifdef __cplusplus } #endif diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h new file mode 100644 index 0000000000..b97cdf84fe --- /dev/null +++ b/lib/eventdev/rte_eventdev_core.h @@ -0,0 +1,138 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2016-2018 Intel Corporation. + * Copyright(C) 2021 Marvell. + * Copyright 2016 NXP + * All rights reserved. + */ + +#ifndef _RTE_EVENTDEV_CORE_H_ +#define _RTE_EVENTDEV_CORE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef uint16_t (*event_enqueue_t)(void *port, const struct rte_event *ev); +/**< @internal Enqueue event on port of a device */ + +typedef uint16_t (*event_enqueue_burst_t)(void *port, + const struct rte_event ev[], + uint16_t nb_events); +/**< @internal Enqueue burst of events on port of a device */ + +typedef uint16_t (*event_dequeue_t)(void *port, struct rte_event *ev, + uint64_t timeout_ticks); +/**< @internal Dequeue event from port of a device */ + +typedef uint16_t (*event_dequeue_burst_t)(void *port, struct rte_event ev[], + uint16_t nb_events, + uint64_t timeout_ticks); +/**< @internal Dequeue burst of events from port of a device */ + +typedef uint16_t (*event_tx_adapter_enqueue_t)(void *port, + struct rte_event ev[], + uint16_t nb_events); +/**< @internal Enqueue burst of events on port of a device */ + +typedef uint16_t (*event_crypto_adapter_enqueue_t)(void *port, + struct rte_event ev[], + uint16_t nb_events); +/**< @internal Enqueue burst of events on crypto adapter */ + +#define RTE_EVENTDEV_NAME_MAX_LEN (64) +/**< @internal Max length of name of event PMD */ + +/** + * @internal + * The data part, with no function pointers, associated with each device. + * + * This structure is safe to place in shared memory to be common among + * different processes in a multi-process configuration. + */ +struct rte_eventdev_data { + int socket_id; + /**< Socket ID where memory is allocated */ + uint8_t dev_id; + /**< Device ID for this instance */ + uint8_t nb_queues; + /**< Number of event queues. */ + uint8_t nb_ports; + /**< Number of event ports. */ + void **ports; + /**< Array of pointers to ports. */ + struct rte_event_port_conf *ports_cfg; + /**< Array of port configuration structures. */ + struct rte_event_queue_conf *queues_cfg; + /**< Array of queue configuration structures. */ + uint16_t *links_map; + /**< Memory to store queues to port connections. */ + void *dev_private; + /**< PMD-specific private data */ + uint32_t event_dev_cap; + /**< Event device capabilities(RTE_EVENT_DEV_CAP_)*/ + struct rte_event_dev_config dev_conf; + /**< Configuration applied to device. */ + uint8_t service_inited; + /* Service initialization state */ + uint32_t service_id; + /* Service ID*/ + void *dev_stop_flush_arg; + /**< User-provided argument for event flush function */ + + RTE_STD_C11 + uint8_t dev_started : 1; + /**< Device state: STARTED(1)/STOPPED(0) */ + + char name[RTE_EVENTDEV_NAME_MAX_LEN]; + /**< Unique identifier name */ + + uint64_t reserved_64s[4]; /**< Reserved for future fields */ + void *reserved_ptrs[4]; /**< Reserved for future fields */ +} __rte_cache_aligned; + +/** @internal The data structure associated with each event device. */ +struct rte_eventdev { + event_enqueue_t enqueue; + /**< Pointer to PMD enqueue function. */ + event_enqueue_burst_t enqueue_burst; + /**< Pointer to PMD enqueue burst function. */ + event_enqueue_burst_t enqueue_new_burst; + /**< Pointer to PMD enqueue burst function(op new variant) */ + event_enqueue_burst_t enqueue_forward_burst; + /**< Pointer to PMD enqueue burst function(op forward variant) */ + event_dequeue_t dequeue; + /**< Pointer to PMD dequeue function. */ + event_dequeue_burst_t dequeue_burst; + /**< Pointer to PMD dequeue burst function. */ + event_tx_adapter_enqueue_t txa_enqueue_same_dest; + /**< Pointer to PMD eth Tx adapter burst enqueue function with + * events destined to same Eth port & Tx queue. + */ + event_tx_adapter_enqueue_t txa_enqueue; + /**< Pointer to PMD eth Tx adapter enqueue function. */ + struct rte_eventdev_data *data; + /**< Pointer to device data */ + struct eventdev_ops *dev_ops; + /**< Functions exported by PMD */ + struct rte_device *dev; + /**< Device info. supplied by probing */ + + RTE_STD_C11 + uint8_t attached : 1; + /**< Flag indicating the device is attached */ + + event_crypto_adapter_enqueue_t ca_enqueue; + /**< Pointer to PMD crypto adapter enqueue function. */ + + uint64_t reserved_64s[4]; /**< Reserved for future fields */ + void *reserved_ptrs[3]; /**< Reserved for future fields */ +} __rte_cache_aligned; + +extern struct rte_eventdev *rte_eventdevs; +/** @internal The pool of rte_eventdev structures. */ + +#ifdef __cplusplus +} +#endif + +#endif /*_RTE_EVENTDEV_CORE_H_*/ From patchwork Sun Oct 3 08:26:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100381 X-Patchwork-Delegate: jerinj@marvell.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 71724A034F; Sun, 3 Oct 2021 10:32:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2006B41241; Sun, 3 Oct 2021 10:31:50 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id AE17D411F0 for ; Sun, 3 Oct 2021 10:31:47 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1934NYDI023850; Sun, 3 Oct 2021 01:31:47 -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=4ZM9xMqjJ1jWfIoDr3MdgQkSrh0Z2YK7vOX3SQ7NerU=; b=L8+6BKskx5SCDtQOn2FOtGqwHEn6XmfEzSobvguvOdO301XSQHhMpO6AvgOhi1BCQvqm wkvKCp0ia5mHWBwmWM46+Eukl+QTP14nYoIeMH2Npc6HF3YLR+PwEKzDekP10A5eNJ4H vHH2j6qW3JJxIhE6OPVd0WrP4xRURcGSbV4ALH75WjZgD/pc/MhCuJ6UOtmdYkDRDjY9 LqM1MJPXzgmAoLWEIdBR8c4bBWDhYwS6GQfHRdfTMla7w5lGD/X987+6QBRLc8e7+wcc jaNxuUiQTi9FLuQA5088qX5nX/SSpJ3/bAuNIUVHY1WGwA5jOI8S2CdnX//+v3yA6lhM Mg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4mq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:31:47 -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; Sun, 3 Oct 2021 01:31:44 -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; Sun, 3 Oct 2021 01:31:44 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 195F33F7044; Sun, 3 Oct 2021 01:31:42 -0700 (PDT) From: To: , Bruce Richardson , Anatoly Burakov CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:56:59 +0530 Message-ID: <20211003082710.8398-3-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: InnOXSH0VLSm67byQa_srf50oW8qTEQ9 X-Proofpoint-ORIG-GUID: InnOXSH0VLSm67byQa_srf50oW8qTEQ9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 03/13] eventdev: allocate max space for internal arrays 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 Allocate max space for internal port, port config, queue config and link map arrays. Introduce new macro RTE_EVENT_MAX_PORTS_PER_DEV and set it to max possible value. This simplifies the port and queue reconfigure scenarios and will also allow inline functions to refer pointer to internal port data without extra checking of current number of configured queues. Signed-off-by: Pavan Nikhilesh --- config/rte_config.h | 1 + lib/eventdev/rte_eventdev.c | 154 +++++++------------------------ lib/eventdev/rte_eventdev_core.h | 9 +- 3 files changed, 38 insertions(+), 126 deletions(-) diff --git a/config/rte_config.h b/config/rte_config.h index 590903c07d..e0ead8b251 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -72,6 +72,7 @@ /* eventdev defines */ #define RTE_EVENT_MAX_DEVS 16 +#define RTE_EVENT_MAX_PORTS_PER_DEV 255 #define RTE_EVENT_MAX_QUEUES_PER_DEV 255 #define RTE_EVENT_TIMER_ADAPTER_NUM_MAX 32 #define RTE_EVENT_ETH_INTR_RING_SIZE 1024 diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index e347d6dfd5..bfcfa31cd1 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -209,7 +209,7 @@ rte_event_eth_tx_adapter_caps_get(uint8_t dev_id, uint16_t eth_port_id, } static inline int -rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) +event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) { uint8_t old_nb_queues = dev->data->nb_queues; struct rte_event_queue_conf *queues_cfg; @@ -218,37 +218,13 @@ rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) RTE_EDEV_LOG_DEBUG("Setup %d queues on device %u", nb_queues, dev->data->dev_id); - /* First time configuration */ - if (dev->data->queues_cfg == NULL && nb_queues != 0) { - /* Allocate memory to store queue configuration */ - dev->data->queues_cfg = rte_zmalloc_socket( - "eventdev->data->queues_cfg", - sizeof(dev->data->queues_cfg[0]) * nb_queues, - RTE_CACHE_LINE_SIZE, dev->data->socket_id); - if (dev->data->queues_cfg == NULL) { - dev->data->nb_queues = 0; - RTE_EDEV_LOG_ERR("failed to get mem for queue cfg," - "nb_queues %u", nb_queues); - return -(ENOMEM); - } - /* Re-configure */ - } else if (dev->data->queues_cfg != NULL && nb_queues != 0) { + if (nb_queues != 0) { + queues_cfg = dev->data->queues_cfg; RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->queue_release, -ENOTSUP); for (i = nb_queues; i < old_nb_queues; i++) (*dev->dev_ops->queue_release)(dev, i); - /* Re allocate memory to store queue configuration */ - queues_cfg = dev->data->queues_cfg; - queues_cfg = rte_realloc(queues_cfg, - sizeof(queues_cfg[0]) * nb_queues, - RTE_CACHE_LINE_SIZE); - if (queues_cfg == NULL) { - RTE_EDEV_LOG_ERR("failed to realloc queue cfg memory," - " nb_queues %u", nb_queues); - return -(ENOMEM); - } - dev->data->queues_cfg = queues_cfg; if (nb_queues > old_nb_queues) { uint8_t new_qs = nb_queues - old_nb_queues; @@ -256,7 +232,7 @@ rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) memset(queues_cfg + old_nb_queues, 0, sizeof(queues_cfg[0]) * new_qs); } - } else if (dev->data->queues_cfg != NULL && nb_queues == 0) { + } else { RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->queue_release, -ENOTSUP); for (i = nb_queues; i < old_nb_queues; i++) @@ -270,7 +246,7 @@ rte_event_dev_queue_config(struct rte_eventdev *dev, uint8_t nb_queues) #define EVENT_QUEUE_SERVICE_PRIORITY_INVALID (0xdead) static inline int -rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) +event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) { uint8_t old_nb_ports = dev->data->nb_ports; void **ports; @@ -281,46 +257,7 @@ rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) RTE_EDEV_LOG_DEBUG("Setup %d ports on device %u", nb_ports, dev->data->dev_id); - /* First time configuration */ - if (dev->data->ports == NULL && nb_ports != 0) { - dev->data->ports = rte_zmalloc_socket("eventdev->data->ports", - sizeof(dev->data->ports[0]) * nb_ports, - RTE_CACHE_LINE_SIZE, dev->data->socket_id); - if (dev->data->ports == NULL) { - dev->data->nb_ports = 0; - RTE_EDEV_LOG_ERR("failed to get mem for port meta data," - "nb_ports %u", nb_ports); - return -(ENOMEM); - } - - /* Allocate memory to store port configurations */ - dev->data->ports_cfg = - rte_zmalloc_socket("eventdev->ports_cfg", - sizeof(dev->data->ports_cfg[0]) * nb_ports, - RTE_CACHE_LINE_SIZE, dev->data->socket_id); - if (dev->data->ports_cfg == NULL) { - dev->data->nb_ports = 0; - RTE_EDEV_LOG_ERR("failed to get mem for port cfg," - "nb_ports %u", nb_ports); - return -(ENOMEM); - } - - /* Allocate memory to store queue to port link connection */ - dev->data->links_map = - rte_zmalloc_socket("eventdev->links_map", - sizeof(dev->data->links_map[0]) * nb_ports * - RTE_EVENT_MAX_QUEUES_PER_DEV, - RTE_CACHE_LINE_SIZE, dev->data->socket_id); - if (dev->data->links_map == NULL) { - dev->data->nb_ports = 0; - RTE_EDEV_LOG_ERR("failed to get mem for port_map area," - "nb_ports %u", nb_ports); - return -(ENOMEM); - } - for (i = 0; i < nb_ports * RTE_EVENT_MAX_QUEUES_PER_DEV; i++) - dev->data->links_map[i] = - EVENT_QUEUE_SERVICE_PRIORITY_INVALID; - } else if (dev->data->ports != NULL && nb_ports != 0) {/* re-config */ + if (nb_ports != 0) { /* re-config */ RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->port_release, -ENOTSUP); ports = dev->data->ports; @@ -330,37 +267,6 @@ rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) for (i = nb_ports; i < old_nb_ports; i++) (*dev->dev_ops->port_release)(ports[i]); - /* Realloc memory for ports */ - ports = rte_realloc(ports, sizeof(ports[0]) * nb_ports, - RTE_CACHE_LINE_SIZE); - if (ports == NULL) { - RTE_EDEV_LOG_ERR("failed to realloc port meta data," - " nb_ports %u", nb_ports); - return -(ENOMEM); - } - - /* Realloc memory for ports_cfg */ - ports_cfg = rte_realloc(ports_cfg, - sizeof(ports_cfg[0]) * nb_ports, - RTE_CACHE_LINE_SIZE); - if (ports_cfg == NULL) { - RTE_EDEV_LOG_ERR("failed to realloc port cfg mem," - " nb_ports %u", nb_ports); - return -(ENOMEM); - } - - /* Realloc memory to store queue to port link connection */ - links_map = rte_realloc(links_map, - sizeof(dev->data->links_map[0]) * nb_ports * - RTE_EVENT_MAX_QUEUES_PER_DEV, - RTE_CACHE_LINE_SIZE); - if (links_map == NULL) { - dev->data->nb_ports = 0; - RTE_EDEV_LOG_ERR("failed to realloc mem for port_map," - "nb_ports %u", nb_ports); - return -(ENOMEM); - } - if (nb_ports > old_nb_ports) { uint8_t new_ps = nb_ports - old_nb_ports; unsigned int old_links_map_end = @@ -376,16 +282,14 @@ rte_event_dev_port_config(struct rte_eventdev *dev, uint8_t nb_ports) links_map[i] = EVENT_QUEUE_SERVICE_PRIORITY_INVALID; } - - dev->data->ports = ports; - dev->data->ports_cfg = ports_cfg; - dev->data->links_map = links_map; - } else if (dev->data->ports != NULL && nb_ports == 0) { + } else { RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->port_release, -ENOTSUP); ports = dev->data->ports; - for (i = nb_ports; i < old_nb_ports; i++) + for (i = nb_ports; i < old_nb_ports; i++) { (*dev->dev_ops->port_release)(ports[i]); + ports[i] = NULL; + } } dev->data->nb_ports = nb_ports; @@ -550,19 +454,19 @@ rte_event_dev_configure(uint8_t dev_id, memcpy(&dev->data->dev_conf, dev_conf, sizeof(dev->data->dev_conf)); /* Setup new number of queues and reconfigure device. */ - diag = rte_event_dev_queue_config(dev, dev_conf->nb_event_queues); + diag = event_dev_queue_config(dev, dev_conf->nb_event_queues); if (diag != 0) { - RTE_EDEV_LOG_ERR("dev%d rte_event_dev_queue_config = %d", - dev_id, diag); + RTE_EDEV_LOG_ERR("dev%d event_dev_queue_config = %d", dev_id, + diag); return diag; } /* Setup new number of ports and reconfigure device. */ - diag = rte_event_dev_port_config(dev, dev_conf->nb_event_ports); + diag = event_dev_port_config(dev, dev_conf->nb_event_ports); if (diag != 0) { - rte_event_dev_queue_config(dev, 0); - RTE_EDEV_LOG_ERR("dev%d rte_event_dev_port_config = %d", - dev_id, diag); + event_dev_queue_config(dev, 0); + RTE_EDEV_LOG_ERR("dev%d event_dev_port_config = %d", dev_id, + diag); return diag; } @@ -570,8 +474,8 @@ rte_event_dev_configure(uint8_t dev_id, diag = (*dev->dev_ops->dev_configure)(dev); if (diag != 0) { RTE_EDEV_LOG_ERR("dev%d dev_configure = %d", dev_id, diag); - rte_event_dev_queue_config(dev, 0); - rte_event_dev_port_config(dev, 0); + event_dev_queue_config(dev, 0); + event_dev_port_config(dev, 0); } dev->data->event_dev_cap = info.event_dev_cap; @@ -1403,8 +1307,8 @@ rte_event_dev_close(uint8_t dev_id) } static inline int -rte_eventdev_data_alloc(uint8_t dev_id, struct rte_eventdev_data **data, - int socket_id) +eventdev_data_alloc(uint8_t dev_id, struct rte_eventdev_data **data, + int socket_id) { char mz_name[RTE_EVENTDEV_NAME_MAX_LEN]; const struct rte_memzone *mz; @@ -1426,14 +1330,20 @@ rte_eventdev_data_alloc(uint8_t dev_id, struct rte_eventdev_data **data, return -ENOMEM; *data = mz->addr; - if (rte_eal_process_type() == RTE_PROC_PRIMARY) + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { memset(*data, 0, sizeof(struct rte_eventdev_data)); + for (n = 0; n < RTE_EVENT_MAX_PORTS_PER_DEV * + RTE_EVENT_MAX_QUEUES_PER_DEV; + n++) + (*data)->links_map[n] = + EVENT_QUEUE_SERVICE_PRIORITY_INVALID; + } return 0; } static inline uint8_t -rte_eventdev_find_free_device_index(void) +eventdev_find_free_device_index(void) { uint8_t dev_id; @@ -1475,7 +1385,7 @@ rte_event_pmd_allocate(const char *name, int socket_id) return NULL; } - dev_id = rte_eventdev_find_free_device_index(); + dev_id = eventdev_find_free_device_index(); if (dev_id == RTE_EVENT_MAX_DEVS) { RTE_EDEV_LOG_ERR("Reached maximum number of event devices"); return NULL; @@ -1490,8 +1400,8 @@ rte_event_pmd_allocate(const char *name, int socket_id) if (eventdev->data == NULL) { struct rte_eventdev_data *eventdev_data = NULL; - int retval = rte_eventdev_data_alloc(dev_id, &eventdev_data, - socket_id); + int retval = + eventdev_data_alloc(dev_id, &eventdev_data, socket_id); if (retval < 0 || eventdev_data == NULL) return NULL; diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h index b97cdf84fe..115b97e431 100644 --- a/lib/eventdev/rte_eventdev_core.h +++ b/lib/eventdev/rte_eventdev_core.h @@ -58,13 +58,14 @@ struct rte_eventdev_data { /**< Number of event queues. */ uint8_t nb_ports; /**< Number of event ports. */ - void **ports; + void *ports[RTE_EVENT_MAX_PORTS_PER_DEV]; /**< Array of pointers to ports. */ - struct rte_event_port_conf *ports_cfg; + struct rte_event_port_conf ports_cfg[RTE_EVENT_MAX_PORTS_PER_DEV]; /**< Array of port configuration structures. */ - struct rte_event_queue_conf *queues_cfg; + struct rte_event_queue_conf queues_cfg[RTE_EVENT_MAX_QUEUES_PER_DEV]; /**< Array of queue configuration structures. */ - uint16_t *links_map; + uint16_t links_map[RTE_EVENT_MAX_PORTS_PER_DEV * + RTE_EVENT_MAX_QUEUES_PER_DEV]; /**< Memory to store queues to port connections. */ void *dev_private; /**< PMD-specific private data */ From patchwork Sun Oct 3 08:27:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100382 X-Patchwork-Delegate: jerinj@marvell.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 29955A034F; Sun, 3 Oct 2021 10:32:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 864A04123A; Sun, 3 Oct 2021 10:31:53 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id B81654068E for ; Sun, 3 Oct 2021 10:31:51 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1935gf3T021152; Sun, 3 Oct 2021 01:31:49 -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=rXkzDdNhI6PkLxELo1nxNzcajHwNQI//oXZBtBhPyPE=; b=BXaEsvxQP3sFQBsLJ72fFZ3czSQ5foNt3bhHnREiwZTDwuhWC0Yq4x/o40DmxBBXUKJu zXT1mtbfrhZHtimlaeH1L2MzmHoSbj3no4NBBw4QmsWGctqAtCfeB1SNG2wJ1EMVw9lk MhnVcO1inl+iPSHv5bPxC/nOjREvuNu710tWSpR8c0m7x9PreC45rWyoQiHSr1XR2Xh3 CbxM9yTpv8owHPrHgr/T7RzJUFMFT4uxME4cdZkF0KQBN3nK6CoDd/IpWyEnl0Uda63k y7JgbTsETdqKDuJfKLpuOCcFqpbIlcvPEMyp+bD0KGLM25O7qadi0EKHxu2KYDbkxK+R dQ== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4mt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:31:49 -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; Sun, 3 Oct 2021 01:31:47 -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; Sun, 3 Oct 2021 01:31:47 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 03A483F7044; Sun, 3 Oct 2021 01:31:45 -0700 (PDT) From: To: , Ray Kinsella CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:00 +0530 Message-ID: <20211003082710.8398-4-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: YiE5GMJIofUR2JVN0sDKUTR3ZNBRiddc X-Proofpoint-ORIG-GUID: YiE5GMJIofUR2JVN0sDKUTR3ZNBRiddc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 04/13] eventdev: move inline APIs into separate structure 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 fastpath inline function pointers from rte_eventdev into a separate structure accessed via a flat array. The intension is to make rte_eventdev and related structures private to avoid future API/ABI breakages.` Signed-off-by: Pavan Nikhilesh Acked-by: Ray Kinsella --- lib/eventdev/eventdev_pmd.h | 25 +++++++ lib/eventdev/eventdev_pmd_pci.h | 5 +- lib/eventdev/eventdev_private.c | 112 +++++++++++++++++++++++++++++++ lib/eventdev/meson.build | 1 + lib/eventdev/rte_eventdev.c | 12 +++- lib/eventdev/rte_eventdev_core.h | 28 ++++++++ lib/eventdev/version.map | 5 ++ 7 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 lib/eventdev/eventdev_private.c diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index 7eb2aa0520..2f88dbd6d8 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -1189,4 +1189,29 @@ __rte_internal int rte_event_pmd_release(struct rte_eventdev *eventdev); +/** + * Reset eventdevice fastpath APIs to dummy values. + * + * @param fp_ops + * The *fp_ops* pointer to reset. + */ +__rte_internal +void +event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op); + +/** + * Set eventdevice fastpath APIs to event device values. + * + * @param fp_ops + * The *fp_ops* pointer to set. + */ +__rte_internal +void +event_dev_fp_ops_set(struct rte_event_fp_ops *fp_ops, + const struct rte_eventdev *dev); + +#ifdef __cplusplus +} +#endif + #endif /* _RTE_EVENTDEV_PMD_H_ */ diff --git a/lib/eventdev/eventdev_pmd_pci.h b/lib/eventdev/eventdev_pmd_pci.h index 2f12a5eb24..563b579a77 100644 --- a/lib/eventdev/eventdev_pmd_pci.h +++ b/lib/eventdev/eventdev_pmd_pci.h @@ -67,8 +67,11 @@ rte_event_pmd_pci_probe_named(struct rte_pci_driver *pci_drv, /* Invoke PMD device initialization function */ retval = devinit(eventdev); - if (retval == 0) + if (retval == 0) { + event_dev_fp_ops_set(rte_event_fp_ops + eventdev->data->dev_id, + eventdev); return 0; + } RTE_EDEV_LOG_ERR("driver %s: (vendor_id=0x%x device_id=0x%x)" " failed", pci_drv->driver.name, diff --git a/lib/eventdev/eventdev_private.c b/lib/eventdev/eventdev_private.c new file mode 100644 index 0000000000..9084833847 --- /dev/null +++ b/lib/eventdev/eventdev_private.c @@ -0,0 +1,112 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(C) 2021 Marvell. + */ + +#include "eventdev_pmd.h" +#include "rte_eventdev.h" + +static uint16_t +dummy_event_enqueue(__rte_unused void *port, + __rte_unused const struct rte_event *ev) +{ + RTE_EDEV_LOG_ERR( + "event enqueue requested for unconfigured event device"); + return 0; +} + +static uint16_t +dummy_event_enqueue_burst(__rte_unused void *port, + __rte_unused const struct rte_event ev[], + __rte_unused uint16_t nb_events) +{ + RTE_EDEV_LOG_ERR( + "event enqueue burst requested for unconfigured event device"); + return 0; +} + +static uint16_t +dummy_event_dequeue(__rte_unused void *port, __rte_unused struct rte_event *ev, + __rte_unused uint64_t timeout_ticks) +{ + RTE_EDEV_LOG_ERR( + "event dequeue requested for unconfigured event device"); + return 0; +} + +static uint16_t +dummy_event_dequeue_burst(__rte_unused void *port, + __rte_unused struct rte_event ev[], + __rte_unused uint16_t nb_events, + __rte_unused uint64_t timeout_ticks) +{ + RTE_EDEV_LOG_ERR( + "event dequeue burst requested for unconfigured event device"); + return 0; +} + +static uint16_t +dummy_event_tx_adapter_enqueue(__rte_unused void *port, + __rte_unused struct rte_event ev[], + __rte_unused uint16_t nb_events) +{ + RTE_EDEV_LOG_ERR( + "event Tx adapter enqueue requested for unconfigured event device"); + return 0; +} + +static uint16_t +dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port, + __rte_unused struct rte_event ev[], + __rte_unused uint16_t nb_events) +{ + RTE_EDEV_LOG_ERR( + "event Tx adapter enqueue same destination requested for unconfigured event device"); + return 0; +} + +static uint16_t +dummy_event_crypto_adapter_enqueue(__rte_unused void *port, + __rte_unused struct rte_event ev[], + __rte_unused uint16_t nb_events) +{ + RTE_EDEV_LOG_ERR( + "event crypto adapter enqueue requested for unconfigured event device"); + return 0; +} + +void +event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op) +{ + static void *dummy_data[RTE_MAX_QUEUES_PER_PORT]; + static const struct rte_event_fp_ops dummy = { + .enqueue = dummy_event_enqueue, + .enqueue_burst = dummy_event_enqueue_burst, + .enqueue_new_burst = dummy_event_enqueue_burst, + .enqueue_forward_burst = dummy_event_enqueue_burst, + .dequeue = dummy_event_dequeue, + .dequeue_burst = dummy_event_dequeue_burst, + .txa_enqueue = dummy_event_tx_adapter_enqueue, + .txa_enqueue_same_dest = + dummy_event_tx_adapter_enqueue_same_dest, + .ca_enqueue = dummy_event_crypto_adapter_enqueue, + .data = dummy_data, + }; + + *fp_op = dummy; +} + +void +event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op, + const struct rte_eventdev *dev) +{ + fp_op->enqueue = dev->enqueue; + fp_op->enqueue_burst = dev->enqueue_burst; + fp_op->enqueue_new_burst = dev->enqueue_new_burst; + fp_op->enqueue_forward_burst = dev->enqueue_forward_burst; + fp_op->dequeue = dev->dequeue; + fp_op->dequeue_burst = dev->dequeue_burst; + fp_op->txa_enqueue = dev->txa_enqueue; + fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest; + fp_op->ca_enqueue = dev->ca_enqueue; + fp_op->data = dev->data->ports; +} diff --git a/lib/eventdev/meson.build b/lib/eventdev/meson.build index 8b51fde361..9051ff04b7 100644 --- a/lib/eventdev/meson.build +++ b/lib/eventdev/meson.build @@ -8,6 +8,7 @@ else endif sources = files( + 'eventdev_private.c', 'rte_eventdev.c', 'rte_event_ring.c', 'eventdev_trace_points.c', diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index bfcfa31cd1..f14a887340 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -46,6 +46,9 @@ static struct rte_eventdev_global eventdev_globals = { .nb_devs = 0 }; +/* Public fastpath APIs. */ +struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS]; + /* Event dev north bound API implementation */ uint8_t @@ -300,8 +303,8 @@ int rte_event_dev_configure(uint8_t dev_id, const struct rte_event_dev_config *dev_conf) { - struct rte_eventdev *dev; struct rte_event_dev_info info; + struct rte_eventdev *dev; int diag; RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); @@ -470,10 +473,13 @@ rte_event_dev_configure(uint8_t dev_id, return diag; } + event_dev_fp_ops_reset(rte_event_fp_ops + dev_id); + /* Configure the device */ diag = (*dev->dev_ops->dev_configure)(dev); if (diag != 0) { RTE_EDEV_LOG_ERR("dev%d dev_configure = %d", dev_id, diag); + event_dev_fp_ops_reset(rte_event_fp_ops + dev_id); event_dev_queue_config(dev, 0); event_dev_port_config(dev, 0); } @@ -1244,6 +1250,8 @@ rte_event_dev_start(uint8_t dev_id) else return diag; + event_dev_fp_ops_set(rte_event_fp_ops + dev_id, dev); + return 0; } @@ -1284,6 +1292,7 @@ rte_event_dev_stop(uint8_t dev_id) dev->data->dev_started = 0; (*dev->dev_ops->dev_stop)(dev); rte_eventdev_trace_stop(dev_id); + event_dev_fp_ops_reset(rte_event_fp_ops + dev_id); } int @@ -1302,6 +1311,7 @@ rte_event_dev_close(uint8_t dev_id) return -EBUSY; } + event_dev_fp_ops_reset(rte_event_fp_ops + dev_id); rte_eventdev_trace_close(dev_id); return (*dev->dev_ops->dev_close)(dev); } diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h index 115b97e431..4461073101 100644 --- a/lib/eventdev/rte_eventdev_core.h +++ b/lib/eventdev/rte_eventdev_core.h @@ -39,6 +39,34 @@ typedef uint16_t (*event_crypto_adapter_enqueue_t)(void *port, uint16_t nb_events); /**< @internal Enqueue burst of events on crypto adapter */ +struct rte_event_fp_ops { + event_enqueue_t enqueue; + /**< PMD enqueue function. */ + event_enqueue_burst_t enqueue_burst; + /**< PMD enqueue burst function. */ + event_enqueue_burst_t enqueue_new_burst; + /**< PMD enqueue burst new function. */ + event_enqueue_burst_t enqueue_forward_burst; + /**< PMD enqueue burst fwd function. */ + event_dequeue_t dequeue; + /**< PMD dequeue function. */ + event_dequeue_burst_t dequeue_burst; + /**< PMD dequeue burst function. */ + event_tx_adapter_enqueue_t txa_enqueue; + /**< PMD Tx adapter enqueue function. */ + event_tx_adapter_enqueue_t txa_enqueue_same_dest; + /**< PMD Tx adapter enqueue same destination function. */ + event_crypto_adapter_enqueue_t ca_enqueue; + /**< PMD Crypto adapter enqueue function. */ + uintptr_t reserved[2]; + + void **data; + /**< points to array of internal port data pointers */ + uintptr_t reserved2[4]; +} __rte_cache_aligned; + +extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS]; + #define RTE_EVENTDEV_NAME_MAX_LEN (64) /**< @internal Max length of name of event PMD */ diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map index 5f1fe412a4..33ab447d4b 100644 --- a/lib/eventdev/version.map +++ b/lib/eventdev/version.map @@ -85,6 +85,9 @@ DPDK_22 { rte_event_timer_cancel_burst; rte_eventdevs; + #added in 21.11 + rte_event_fp_ops; + local: *; }; @@ -141,6 +144,8 @@ EXPERIMENTAL { INTERNAL { global: + event_dev_fp_ops_reset; + event_dev_fp_ops_set; rte_event_pmd_selftest_seqn_dynfield_offset; rte_event_pmd_allocate; rte_event_pmd_get_named_dev; From patchwork Sun Oct 3 08:27:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100383 X-Patchwork-Delegate: jerinj@marvell.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 C6FE9A034F; Sun, 3 Oct 2021 10:32:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 993AF41251; Sun, 3 Oct 2021 10:31:54 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 130D04068E for ; Sun, 3 Oct 2021 10:31:52 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1934f1LO019260; Sun, 3 Oct 2021 01:31:52 -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=1LCuEiUK3+fXfOguKjT8QYz8juNB1tiN9WTqxT/11tQ=; b=DgwG6okboTCShLbwKYSz6HGFq2gDiGIofKWasC4itKZDtvrEfEDl4eyddLzXQhUDbMaZ X2onQOLQR6yayoZJUAhSG304U0PNmhgz0SBZKyC8fNVDHak3eneq3dN2Go02ggHc6EEG CS+hReGiQ8i6kyDapTiUj91NsctPpVIWrhTcUDQkFmv6H/L6zHh7aQpfOCFUvdacaem1 CHnaQS9zZ/IZgPuqHsrIufR5/y5MRWw/w/GlbqI/+QrtR8j5vJETZfEqe4brUZaWWGgF W2Vje/QN7rSUwS1rSfXYuxRygZ0eykW5BZv5OqJxnE4gNXeMsTUCZumur2K1TJ4r4D/I dw== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4n0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:31:52 -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; Sun, 3 Oct 2021 01:31:50 -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; Sun, 3 Oct 2021 01:31:50 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 855963F7044; Sun, 3 Oct 2021 01:31:48 -0700 (PDT) From: To: , Abhinandan Gujjar , "Jay Jayatheerthan" CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:01 +0530 Message-ID: <20211003082710.8398-5-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: iN8COLT2-7_NAw3Kt5EFNTUmjcJkYbnA X-Proofpoint-ORIG-GUID: iN8COLT2-7_NAw3Kt5EFNTUmjcJkYbnA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 05/13] eventdev: use new API for inline functions 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 Use new driver interface for the fastpath enqueue/dequeue inline functions. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/rte_event_crypto_adapter.h | 15 +++++--- lib/eventdev/rte_event_eth_tx_adapter.h | 15 ++++---- lib/eventdev/rte_eventdev.h | 46 +++++++++++++++---------- 3 files changed, 47 insertions(+), 29 deletions(-) diff --git a/lib/eventdev/rte_event_crypto_adapter.h b/lib/eventdev/rte_event_crypto_adapter.h index 431d05b6ed..eb82818d05 100644 --- a/lib/eventdev/rte_event_crypto_adapter.h +++ b/lib/eventdev/rte_event_crypto_adapter.h @@ -568,12 +568,19 @@ rte_event_crypto_adapter_enqueue(uint8_t dev_id, struct rte_event ev[], uint16_t nb_events) { - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + void *port; + fp_ops = &rte_event_fp_ops[dev_id]; + port = fp_ops->data[port_id]; #ifdef RTE_LIBRTE_EVENTDEV_DEBUG - RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); + if (dev_id >= RTE_EVENT_MAX_DEVS || + port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) { + rte_errno = EINVAL; + return 0; + } - if (port_id >= dev->data->nb_ports) { + if (port == NULL) { rte_errno = EINVAL; return 0; } @@ -581,7 +588,7 @@ rte_event_crypto_adapter_enqueue(uint8_t dev_id, rte_eventdev_trace_crypto_adapter_enqueue(dev_id, port_id, ev, nb_events); - return dev->ca_enqueue(dev->data->ports[port_id], ev, nb_events); + return fp_ops->ca_enqueue(port, ev, nb_events); } #ifdef __cplusplus diff --git a/lib/eventdev/rte_event_eth_tx_adapter.h b/lib/eventdev/rte_event_eth_tx_adapter.h index 8c59547165..3908c2ded5 100644 --- a/lib/eventdev/rte_event_eth_tx_adapter.h +++ b/lib/eventdev/rte_event_eth_tx_adapter.h @@ -355,16 +355,19 @@ rte_event_eth_tx_adapter_enqueue(uint8_t dev_id, uint16_t nb_events, const uint8_t flags) { - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + void *port; + fp_ops = &rte_event_fp_ops[dev_id]; + port = fp_ops->data[port_id]; #ifdef RTE_LIBRTE_EVENTDEV_DEBUG if (dev_id >= RTE_EVENT_MAX_DEVS || - !rte_eventdevs[dev_id].attached) { + port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) { rte_errno = EINVAL; return 0; } - if (port_id >= dev->data->nb_ports) { + if (port == NULL) { rte_errno = EINVAL; return 0; } @@ -372,11 +375,9 @@ rte_event_eth_tx_adapter_enqueue(uint8_t dev_id, rte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev, nb_events, flags); if (flags) - return dev->txa_enqueue_same_dest(dev->data->ports[port_id], - ev, nb_events); + return fp_ops->txa_enqueue_same_dest(port, ev, nb_events); else - return dev->txa_enqueue(dev->data->ports[port_id], ev, - nb_events); + return fp_ops->txa_enqueue(port, ev, nb_events); } /** diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index 1b11d4576d..31fa9ac4b8 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1747,15 +1747,19 @@ __rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, const struct rte_event ev[], uint16_t nb_events, const event_enqueue_burst_t fn) { - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + void *port; + fp_ops = &rte_event_fp_ops[dev_id]; + port = fp_ops->data[port_id]; #ifdef RTE_LIBRTE_EVENTDEV_DEBUG - if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { + if (dev_id >= RTE_EVENT_MAX_DEVS || + port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) { rte_errno = EINVAL; return 0; } - if (port_id >= dev->data->nb_ports) { + if (port == NULL) { rte_errno = EINVAL; return 0; } @@ -1766,9 +1770,9 @@ __rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, * requests nb_events as const one */ if (nb_events == 1) - return (*dev->enqueue)(dev->data->ports[port_id], ev); + return (fp_ops->enqueue)(port, ev); else - return fn(dev->data->ports[port_id], ev, nb_events); + return fn(port, ev, nb_events); } /** @@ -1818,10 +1822,11 @@ static inline uint16_t rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, const struct rte_event ev[], uint16_t nb_events) { - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + fp_ops = &rte_event_fp_ops[dev_id]; return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, - dev->enqueue_burst); + fp_ops->enqueue_burst); } /** @@ -1869,10 +1874,11 @@ static inline uint16_t rte_event_enqueue_new_burst(uint8_t dev_id, uint8_t port_id, const struct rte_event ev[], uint16_t nb_events) { - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + fp_ops = &rte_event_fp_ops[dev_id]; return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, - dev->enqueue_new_burst); + fp_ops->enqueue_new_burst); } /** @@ -1920,10 +1926,11 @@ static inline uint16_t rte_event_enqueue_forward_burst(uint8_t dev_id, uint8_t port_id, const struct rte_event ev[], uint16_t nb_events) { - const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + fp_ops = &rte_event_fp_ops[dev_id]; return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events, - dev->enqueue_forward_burst); + fp_ops->enqueue_forward_burst); } /** @@ -1996,15 +2003,19 @@ static inline uint16_t rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], uint16_t nb_events, uint64_t timeout_ticks) { - struct rte_eventdev *dev = &rte_eventdevs[dev_id]; + const struct rte_event_fp_ops *fp_ops; + void *port; + fp_ops = &rte_event_fp_ops[dev_id]; + port = fp_ops->data[port_id]; #ifdef RTE_LIBRTE_EVENTDEV_DEBUG - if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { + if (dev_id >= RTE_EVENT_MAX_DEVS || + port_id >= RTE_EVENT_MAX_PORTS_PER_DEV) { rte_errno = EINVAL; return 0; } - if (port_id >= dev->data->nb_ports) { + if (port == NULL) { rte_errno = EINVAL; return 0; } @@ -2015,11 +2026,10 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], * requests nb_events as const one */ if (nb_events == 1) - return (*dev->dequeue)(dev->data->ports[port_id], ev, - timeout_ticks); + return (fp_ops->dequeue)(port, ev, timeout_ticks); else - return (*dev->dequeue_burst)(dev->data->ports[port_id], ev, - nb_events, timeout_ticks); + return (fp_ops->dequeue_burst)(port, ev, nb_events, + timeout_ticks); } #ifdef __cplusplus From patchwork Sun Oct 3 08:27:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100384 X-Patchwork-Delegate: jerinj@marvell.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 55813A034F; Sun, 3 Oct 2021 10:32:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B285841248; Sun, 3 Oct 2021 10:31:57 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 6616F41258 for ; Sun, 3 Oct 2021 10:31:56 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1934f1LP019260; Sun, 3 Oct 2021 01:31:55 -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=1BJ6X+zlmkv9jlnexUS+nh6RNYGPgxjdY0rdPypbNTY=; b=Zgeo29Z1SxxA1/bCld27Xegk+N2blv6BqhnagL+lVwrLSK3W23/7w25NcOYk2lsuqcDB GKgKP5xjVAX2Vwd7rAkieAOByMh9O8BfEbmzE0LG/qcePGhdoUQsMJXQhnmoA7z6ALK+ /kvg6/+XInyUyCB7O2TBBcrzDzOthW+83/JHteghiWgovNovEjljq9SWNkjNni2EZCTL nfojjNAOsRFZ98PAPqgS9oTjzbkoQVEfdd5E62gM27wKVjU5YeTvs7v64EY0VBXqoK8u FuE4V91qiVEa5lfvdsx5kBCIl440xUWuXBBb26KfVHyiut/Z8Ic6EApje9AzZtWDUXsk NA== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4n4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:31:55 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:31:53 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:31:53 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 616113F7044; Sun, 3 Oct 2021 01:31:51 -0700 (PDT) From: To: , Timothy McDaniel , =?utf-8?q?Mattias_R=C3=B6nnblom?= , "Pavan Nikhilesh" , Harman Kalra CC: Date: Sun, 3 Oct 2021 13:57:02 +0530 Message-ID: <20211003082710.8398-6-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: hzH5VotstX0L3jRgd5d6YOkRsPc2LnM2 X-Proofpoint-ORIG-GUID: hzH5VotstX0L3jRgd5d6YOkRsPc2LnM2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 06/13] eventdev: hide event device related structures 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 rte_eventdev, rte_eventdev_data structures to eventdev_pmd.h. Signed-off-by: Pavan Nikhilesh --- drivers/event/dlb2/dlb2_inline_fns.h | 2 + drivers/event/dsw/dsw_evdev.h | 2 + drivers/event/octeontx/timvf_worker.h | 2 + drivers/net/octeontx/octeontx_ethdev.c | 3 +- lib/eventdev/eventdev_pmd.h | 92 +++++++++++++++++++++++++ lib/eventdev/rte_eventdev.c | 22 ------ lib/eventdev/rte_eventdev_core.h | 93 -------------------------- 7 files changed, 100 insertions(+), 116 deletions(-) diff --git a/drivers/event/dlb2/dlb2_inline_fns.h b/drivers/event/dlb2/dlb2_inline_fns.h index ac8d01aa98..1429281cfd 100644 --- a/drivers/event/dlb2/dlb2_inline_fns.h +++ b/drivers/event/dlb2/dlb2_inline_fns.h @@ -5,6 +5,8 @@ #ifndef _DLB2_INLINE_FNS_H_ #define _DLB2_INLINE_FNS_H_ +#include + /* Inline functions required in more than one source file. */ static inline struct dlb2_eventdev * diff --git a/drivers/event/dsw/dsw_evdev.h b/drivers/event/dsw/dsw_evdev.h index 08889a0990..631daea55c 100644 --- a/drivers/event/dsw/dsw_evdev.h +++ b/drivers/event/dsw/dsw_evdev.h @@ -5,6 +5,8 @@ #ifndef _DSW_EVDEV_H_ #define _DSW_EVDEV_H_ +#include + #include #include diff --git a/drivers/event/octeontx/timvf_worker.h b/drivers/event/octeontx/timvf_worker.h index dede1a4a4f..3f1e77f1d1 100644 --- a/drivers/event/octeontx/timvf_worker.h +++ b/drivers/event/octeontx/timvf_worker.h @@ -2,6 +2,8 @@ * Copyright(c) 2017 Cavium, Inc */ +#include + #include #include diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index 9f4c0503b4..c55304839e 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -9,13 +9,14 @@ #include #include +#include #include #include #include #include #include -#include #include +#include #include #include #include diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index 2f88dbd6d8..764555d54c 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -80,6 +80,9 @@ #define RTE_EVENTDEV_DETACHED (0) #define RTE_EVENTDEV_ATTACHED (1) +#define RTE_EVENTDEV_NAME_MAX_LEN (64) +/**< @internal Max length of name of event PMD */ + struct rte_eth_dev; /** Global structure used for maintaining state of allocated event devices */ @@ -87,6 +90,95 @@ struct rte_eventdev_global { uint8_t nb_devs; /**< Number of devices found */ }; +/** + * @internal + * The data part, with no function pointers, associated with each device. + * + * This structure is safe to place in shared memory to be common among + * different processes in a multi-process configuration. + */ +struct rte_eventdev_data { + int socket_id; + /**< Socket ID where memory is allocated */ + uint8_t dev_id; + /**< Device ID for this instance */ + uint8_t nb_queues; + /**< Number of event queues. */ + uint8_t nb_ports; + /**< Number of event ports. */ + void *ports[RTE_EVENT_MAX_PORTS_PER_DEV]; + /**< Array of pointers to ports. */ + struct rte_event_port_conf ports_cfg[RTE_EVENT_MAX_PORTS_PER_DEV]; + /**< Array of port configuration structures. */ + struct rte_event_queue_conf queues_cfg[RTE_EVENT_MAX_QUEUES_PER_DEV]; + /**< Array of queue configuration structures. */ + uint16_t links_map[RTE_EVENT_MAX_PORTS_PER_DEV * + RTE_EVENT_MAX_QUEUES_PER_DEV]; + /**< Memory to store queues to port connections. */ + void *dev_private; + /**< PMD-specific private data */ + uint32_t event_dev_cap; + /**< Event device capabilities(RTE_EVENT_DEV_CAP_)*/ + struct rte_event_dev_config dev_conf; + /**< Configuration applied to device. */ + uint8_t service_inited; + /* Service initialization state */ + uint32_t service_id; + /* Service ID*/ + void *dev_stop_flush_arg; + /**< User-provided argument for event flush function */ + + RTE_STD_C11 + uint8_t dev_started : 1; + /**< Device state: STARTED(1)/STOPPED(0) */ + + char name[RTE_EVENTDEV_NAME_MAX_LEN]; + /**< Unique identifier name */ + + uint64_t reserved_64s[4]; /**< Reserved for future fields */ + void *reserved_ptrs[4]; /**< Reserved for future fields */ +} __rte_cache_aligned; + +/** @internal The data structure associated with each event device. */ +struct rte_eventdev { + struct rte_eventdev_data *data; + /**< Pointer to device data */ + struct eventdev_ops *dev_ops; + /**< Functions exported by PMD */ + struct rte_device *dev; + /**< Device info. supplied by probing */ + + RTE_STD_C11 + uint8_t attached : 1; + /**< Flag indicating the device is attached */ + + event_enqueue_t enqueue; + /**< Pointer to PMD enqueue function. */ + event_enqueue_burst_t enqueue_burst; + /**< Pointer to PMD enqueue burst function. */ + event_enqueue_burst_t enqueue_new_burst; + /**< Pointer to PMD enqueue burst function(op new variant) */ + event_enqueue_burst_t enqueue_forward_burst; + /**< Pointer to PMD enqueue burst function(op forward variant) */ + event_dequeue_t dequeue; + /**< Pointer to PMD dequeue function. */ + event_dequeue_burst_t dequeue_burst; + /**< Pointer to PMD dequeue burst function. */ + event_tx_adapter_enqueue_t txa_enqueue_same_dest; + /**< Pointer to PMD eth Tx adapter burst enqueue function with + * events destined to same Eth port & Tx queue. + */ + event_tx_adapter_enqueue_t txa_enqueue; + /**< Pointer to PMD eth Tx adapter enqueue function. */ + event_crypto_adapter_enqueue_t ca_enqueue; + + uint64_t reserved_64s[4]; /**< Reserved for future fields */ + void *reserved_ptrs[3]; /**< Reserved for future fields */ +} __rte_cache_aligned; + +extern struct rte_eventdev *rte_eventdevs; +/** @internal The pool of rte_eventdev structures. */ + /** * Get the rte_eventdev structure device pointer for the named device. * diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index f14a887340..7a70c7a963 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -1365,24 +1365,6 @@ eventdev_find_free_device_index(void) return RTE_EVENT_MAX_DEVS; } -static uint16_t -rte_event_tx_adapter_enqueue(__rte_unused void *port, - __rte_unused struct rte_event ev[], - __rte_unused uint16_t nb_events) -{ - rte_errno = ENOTSUP; - return 0; -} - -static uint16_t -rte_event_crypto_adapter_enqueue(__rte_unused void *port, - __rte_unused struct rte_event ev[], - __rte_unused uint16_t nb_events) -{ - rte_errno = ENOTSUP; - return 0; -} - struct rte_eventdev * rte_event_pmd_allocate(const char *name, int socket_id) { @@ -1403,10 +1385,6 @@ rte_event_pmd_allocate(const char *name, int socket_id) eventdev = &rte_eventdevs[dev_id]; - eventdev->txa_enqueue = rte_event_tx_adapter_enqueue; - eventdev->txa_enqueue_same_dest = rte_event_tx_adapter_enqueue; - eventdev->ca_enqueue = rte_event_crypto_adapter_enqueue; - if (eventdev->data == NULL) { struct rte_eventdev_data *eventdev_data = NULL; diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h index 4461073101..0da724fa86 100644 --- a/lib/eventdev/rte_eventdev_core.h +++ b/lib/eventdev/rte_eventdev_core.h @@ -67,99 +67,6 @@ struct rte_event_fp_ops { extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS]; -#define RTE_EVENTDEV_NAME_MAX_LEN (64) -/**< @internal Max length of name of event PMD */ - -/** - * @internal - * The data part, with no function pointers, associated with each device. - * - * This structure is safe to place in shared memory to be common among - * different processes in a multi-process configuration. - */ -struct rte_eventdev_data { - int socket_id; - /**< Socket ID where memory is allocated */ - uint8_t dev_id; - /**< Device ID for this instance */ - uint8_t nb_queues; - /**< Number of event queues. */ - uint8_t nb_ports; - /**< Number of event ports. */ - void *ports[RTE_EVENT_MAX_PORTS_PER_DEV]; - /**< Array of pointers to ports. */ - struct rte_event_port_conf ports_cfg[RTE_EVENT_MAX_PORTS_PER_DEV]; - /**< Array of port configuration structures. */ - struct rte_event_queue_conf queues_cfg[RTE_EVENT_MAX_QUEUES_PER_DEV]; - /**< Array of queue configuration structures. */ - uint16_t links_map[RTE_EVENT_MAX_PORTS_PER_DEV * - RTE_EVENT_MAX_QUEUES_PER_DEV]; - /**< Memory to store queues to port connections. */ - void *dev_private; - /**< PMD-specific private data */ - uint32_t event_dev_cap; - /**< Event device capabilities(RTE_EVENT_DEV_CAP_)*/ - struct rte_event_dev_config dev_conf; - /**< Configuration applied to device. */ - uint8_t service_inited; - /* Service initialization state */ - uint32_t service_id; - /* Service ID*/ - void *dev_stop_flush_arg; - /**< User-provided argument for event flush function */ - - RTE_STD_C11 - uint8_t dev_started : 1; - /**< Device state: STARTED(1)/STOPPED(0) */ - - char name[RTE_EVENTDEV_NAME_MAX_LEN]; - /**< Unique identifier name */ - - uint64_t reserved_64s[4]; /**< Reserved for future fields */ - void *reserved_ptrs[4]; /**< Reserved for future fields */ -} __rte_cache_aligned; - -/** @internal The data structure associated with each event device. */ -struct rte_eventdev { - event_enqueue_t enqueue; - /**< Pointer to PMD enqueue function. */ - event_enqueue_burst_t enqueue_burst; - /**< Pointer to PMD enqueue burst function. */ - event_enqueue_burst_t enqueue_new_burst; - /**< Pointer to PMD enqueue burst function(op new variant) */ - event_enqueue_burst_t enqueue_forward_burst; - /**< Pointer to PMD enqueue burst function(op forward variant) */ - event_dequeue_t dequeue; - /**< Pointer to PMD dequeue function. */ - event_dequeue_burst_t dequeue_burst; - /**< Pointer to PMD dequeue burst function. */ - event_tx_adapter_enqueue_t txa_enqueue_same_dest; - /**< Pointer to PMD eth Tx adapter burst enqueue function with - * events destined to same Eth port & Tx queue. - */ - event_tx_adapter_enqueue_t txa_enqueue; - /**< Pointer to PMD eth Tx adapter enqueue function. */ - struct rte_eventdev_data *data; - /**< Pointer to device data */ - struct eventdev_ops *dev_ops; - /**< Functions exported by PMD */ - struct rte_device *dev; - /**< Device info. supplied by probing */ - - RTE_STD_C11 - uint8_t attached : 1; - /**< Flag indicating the device is attached */ - - event_crypto_adapter_enqueue_t ca_enqueue; - /**< Pointer to PMD crypto adapter enqueue function. */ - - uint64_t reserved_64s[4]; /**< Reserved for future fields */ - void *reserved_ptrs[3]; /**< Reserved for future fields */ -} __rte_cache_aligned; - -extern struct rte_eventdev *rte_eventdevs; -/** @internal The pool of rte_eventdev structures. */ - #ifdef __cplusplus } #endif From patchwork Sun Oct 3 08:27:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100385 X-Patchwork-Delegate: jerinj@marvell.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 DD8CCA034F; Sun, 3 Oct 2021 10:32:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8DDC94125D; Sun, 3 Oct 2021 10:32:01 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 190214123D for ; Sun, 3 Oct 2021 10:32:00 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1931o58m005289; Sun, 3 Oct 2021 01:31:59 -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=oGW/IxtrdYd7VX+dHtXHxROu5owcDNno9SlbQR/Irgg=; b=Iw30c7YExtvmUhnuxEMKO3KAnD/Gw25pkIhiZSIcevY1H6dE3tv/XQ0uwaoUHGtB1Y0K AFl1Zcl9ObmDkaGSmzNfJJWjfp58H2Ra1/g1Q0Cf9ZDIc7CIb8o+hrmPbhTCmjdBTIze Nm0XyL3Z7MFELsHEtEqcD+vOkEj4RcLvGCsL/jmPwQIhgdxJfEiCS+8+cjgsuEf+eT3T RPWFCGON6QJHafFEnn6vhk4QGERmABKTXvFtHVEPVtSCbcZFHJvmta3VnhOHKa38SrHY dB0Lt052ikF9uQ0NA44WHPvK9vzT2B6yZgPFITCvj817sZ2+sj3zJxj7ILUZhV+KOncv 8w== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4n7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:31:59 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:31:57 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:31:57 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id BF7323F7044; Sun, 3 Oct 2021 01:31:54 -0700 (PDT) From: To: , Pavan Nikhilesh , "Shijith Thotton" , =?utf-8?q?Mattias_R=C3=B6nnblom?= , Harry van Haaren , Erik Gabriel Carrillo CC: Date: Sun, 3 Oct 2021 13:57:03 +0530 Message-ID: <20211003082710.8398-7-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: hoVXg47F5nQzaEQpMlRh3w6mh8rYzR5n X-Proofpoint-ORIG-GUID: hoVXg47F5nQzaEQpMlRh3w6mh8rYzR5n X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v 07/13] eventdev: hide timer adapter PMD file 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 Hide rte_event_timer_adapter_pmd.h file as it is an internal file. Remove rte_ prefix from rte_event_timer_adapter_ops structure. Signed-off-by: Pavan Nikhilesh --- drivers/event/cnxk/cnxk_tim_evdev.c | 5 ++-- drivers/event/cnxk/cnxk_tim_evdev.h | 2 +- drivers/event/dsw/dsw_evdev.c | 4 +-- drivers/event/octeontx/ssovf_evdev.c | 2 +- drivers/event/octeontx/timvf_evdev.c | 17 ++++++----- drivers/event/octeontx/timvf_evdev.h | 9 +++--- drivers/event/octeontx2/otx2_tim_evdev.c | 5 ++-- drivers/event/octeontx2/otx2_tim_evdev.h | 4 +-- drivers/event/sw/sw_evdev.c | 5 ++-- ...dapter_pmd.h => event_timer_adapter_pmd.h} | 8 ++--- lib/eventdev/eventdev_pmd.h | 8 ++--- lib/eventdev/meson.build | 2 +- lib/eventdev/rte_event_timer_adapter.c | 30 +++++++++---------- lib/eventdev/rte_event_timer_adapter.h | 2 +- lib/eventdev/rte_eventdev.c | 2 +- 15 files changed, 51 insertions(+), 54 deletions(-) rename lib/eventdev/{rte_event_timer_adapter_pmd.h => event_timer_adapter_pmd.h} (95%) -- 2.17.1 diff --git a/drivers/event/cnxk/cnxk_tim_evdev.c b/drivers/event/cnxk/cnxk_tim_evdev.c index 9d40e336d7..10634c31e3 100644 --- a/drivers/event/cnxk/cnxk_tim_evdev.c +++ b/drivers/event/cnxk/cnxk_tim_evdev.c @@ -5,7 +5,7 @@ #include "cnxk_eventdev.h" #include "cnxk_tim_evdev.h" -static struct rte_event_timer_adapter_ops cnxk_tim_ops; +static struct event_timer_adapter_ops cnxk_tim_ops; static int cnxk_tim_chnk_pool_create(struct cnxk_tim_ring *tim_ring, @@ -353,8 +353,7 @@ cnxk_tim_stats_reset(const struct rte_event_timer_adapter *adapter) int cnxk_tim_caps_get(const struct rte_eventdev *evdev, uint64_t flags, - uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops) + uint32_t *caps, const struct event_timer_adapter_ops **ops) { struct cnxk_tim_evdev *dev = cnxk_tim_priv_get(); diff --git a/drivers/event/cnxk/cnxk_tim_evdev.h b/drivers/event/cnxk/cnxk_tim_evdev.h index c369f6f472..91e163eb5a 100644 --- a/drivers/event/cnxk/cnxk_tim_evdev.h +++ b/drivers/event/cnxk/cnxk_tim_evdev.h @@ -267,7 +267,7 @@ cnxk_tim_timer_cancel_burst(const struct rte_event_timer_adapter *adptr, int cnxk_tim_caps_get(const struct rte_eventdev *dev, uint64_t flags, uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops); + const struct event_timer_adapter_ops **ops); void cnxk_tim_init(struct roc_sso *sso); void cnxk_tim_fini(void); diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c index 01f060fff3..e9d33ad36b 100644 --- a/drivers/event/dsw/dsw_evdev.c +++ b/drivers/event/dsw/dsw_evdev.c @@ -381,8 +381,8 @@ dsw_eth_rx_adapter_caps_get(const struct rte_eventdev *dev __rte_unused, static int dsw_timer_adapter_caps_get(const struct rte_eventdev *dev __rte_unused, - uint64_t flags __rte_unused, uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops) + uint64_t flags __rte_unused, uint32_t *caps, + const struct event_timer_adapter_ops **ops) { *caps = 0; *ops = NULL; diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c index 4a8c6a13a5..e7aecd4139 100644 --- a/drivers/event/octeontx/ssovf_evdev.c +++ b/drivers/event/octeontx/ssovf_evdev.c @@ -721,7 +721,7 @@ ssovf_parsekv(const char *key __rte_unused, const char *value, void *opaque) static int ssovf_timvf_caps_get(const struct rte_eventdev *dev, uint64_t flags, - uint32_t *caps, const struct rte_event_timer_adapter_ops **ops) + uint32_t *caps, const struct event_timer_adapter_ops **ops) { return timvf_timer_adapter_caps_get(dev, flags, caps, ops, timvf_enable_stats); diff --git a/drivers/event/octeontx/timvf_evdev.c b/drivers/event/octeontx/timvf_evdev.c index 688e9daa66..1f1cda3f7f 100644 --- a/drivers/event/octeontx/timvf_evdev.c +++ b/drivers/event/octeontx/timvf_evdev.c @@ -407,18 +407,19 @@ timvf_stats_reset(const struct rte_event_timer_adapter *adapter) return 0; } -static struct rte_event_timer_adapter_ops timvf_ops = { - .init = timvf_ring_create, - .uninit = timvf_ring_free, - .start = timvf_ring_start, - .stop = timvf_ring_stop, - .get_info = timvf_ring_info_get, +static struct event_timer_adapter_ops timvf_ops = { + .init = timvf_ring_create, + .uninit = timvf_ring_free, + .start = timvf_ring_start, + .stop = timvf_ring_stop, + .get_info = timvf_ring_info_get, }; int timvf_timer_adapter_caps_get(const struct rte_eventdev *dev, uint64_t flags, - uint32_t *caps, const struct rte_event_timer_adapter_ops **ops, - uint8_t enable_stats) + uint32_t *caps, + const struct event_timer_adapter_ops **ops, + uint8_t enable_stats) { RTE_SET_USED(dev); diff --git a/drivers/event/octeontx/timvf_evdev.h b/drivers/event/octeontx/timvf_evdev.h index 2977063d66..cef02cd7f9 100644 --- a/drivers/event/octeontx/timvf_evdev.h +++ b/drivers/event/octeontx/timvf_evdev.h @@ -5,13 +5,13 @@ #ifndef __TIMVF_EVDEV_H__ #define __TIMVF_EVDEV_H__ +#include #include #include #include #include -#include #include -#include +#include #include #include #include @@ -196,8 +196,9 @@ uint8_t timvf_get_ring(void); void timvf_release_ring(uint8_t vfid); void *timvf_bar(uint8_t id, uint8_t bar); int timvf_timer_adapter_caps_get(const struct rte_eventdev *dev, uint64_t flags, - uint32_t *caps, const struct rte_event_timer_adapter_ops **ops, - uint8_t enable_stats); + uint32_t *caps, + const struct event_timer_adapter_ops **ops, + uint8_t enable_stats); uint16_t timvf_timer_cancel_burst(const struct rte_event_timer_adapter *adptr, struct rte_event_timer **tim, const uint16_t nb_timers); uint16_t timvf_timer_arm_burst_sp(const struct rte_event_timer_adapter *adptr, diff --git a/drivers/event/octeontx2/otx2_tim_evdev.c b/drivers/event/octeontx2/otx2_tim_evdev.c index de50c4c76e..7dcb291043 100644 --- a/drivers/event/octeontx2/otx2_tim_evdev.c +++ b/drivers/event/octeontx2/otx2_tim_evdev.c @@ -9,7 +9,7 @@ #include "otx2_evdev.h" #include "otx2_tim_evdev.h" -static struct rte_event_timer_adapter_ops otx2_tim_ops; +static struct event_timer_adapter_ops otx2_tim_ops; static inline int tim_get_msix_offsets(void) @@ -497,8 +497,7 @@ otx2_tim_stats_reset(const struct rte_event_timer_adapter *adapter) int otx2_tim_caps_get(const struct rte_eventdev *evdev, uint64_t flags, - uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops) + uint32_t *caps, const struct event_timer_adapter_ops **ops) { struct otx2_tim_evdev *dev = tim_priv_get(); diff --git a/drivers/event/octeontx2/otx2_tim_evdev.h b/drivers/event/octeontx2/otx2_tim_evdev.h index caa6ad3b3c..dac642e0e1 100644 --- a/drivers/event/octeontx2/otx2_tim_evdev.h +++ b/drivers/event/octeontx2/otx2_tim_evdev.h @@ -5,8 +5,8 @@ #ifndef __OTX2_TIM_EVDEV_H__ #define __OTX2_TIM_EVDEV_H__ +#include #include -#include #include #include "otx2_dev.h" @@ -244,7 +244,7 @@ uint16_t otx2_tim_timer_cancel_burst( int otx2_tim_caps_get(const struct rte_eventdev *dev, uint64_t flags, uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops); + const struct event_timer_adapter_ops **ops); void otx2_tim_init(struct rte_pci_device *pci_dev, struct otx2_dev *cmn_dev); void otx2_tim_fini(void); diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c index 9b72073322..34815b30b2 100644 --- a/drivers/event/sw/sw_evdev.c +++ b/drivers/event/sw/sw_evdev.c @@ -561,10 +561,9 @@ sw_eth_rx_adapter_caps_get(const struct rte_eventdev *dev, } static int -sw_timer_adapter_caps_get(const struct rte_eventdev *dev, - uint64_t flags, +sw_timer_adapter_caps_get(const struct rte_eventdev *dev, uint64_t flags, uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops) + const struct event_timer_adapter_ops **ops) { RTE_SET_USED(dev); RTE_SET_USED(flags); diff --git a/lib/eventdev/rte_event_timer_adapter_pmd.h b/lib/eventdev/event_timer_adapter_pmd.h similarity index 95% rename from lib/eventdev/rte_event_timer_adapter_pmd.h rename to lib/eventdev/event_timer_adapter_pmd.h index cf3509dc6f..189017b5c1 100644 --- a/lib/eventdev/rte_event_timer_adapter_pmd.h +++ b/lib/eventdev/event_timer_adapter_pmd.h @@ -3,8 +3,8 @@ * All rights reserved. */ -#ifndef __RTE_EVENT_TIMER_ADAPTER_PMD_H__ -#define __RTE_EVENT_TIMER_ADAPTER_PMD_H__ +#ifndef __EVENT_TIMER_ADAPTER_PMD_H__ +#define __EVENT_TIMER_ADAPTER_PMD_H__ /** * @file @@ -57,7 +57,7 @@ typedef int (*rte_event_timer_adapter_stats_reset_t)( * @internal Structure containing the functions exported by an event timer * adapter implementation. */ -struct rte_event_timer_adapter_ops { +struct event_timer_adapter_ops { rte_event_timer_adapter_init_t init; /**< Set up adapter */ rte_event_timer_adapter_uninit_t uninit;/**< Tear down adapter */ rte_event_timer_adapter_start_t start; /**< Start adapter */ @@ -111,4 +111,4 @@ struct rte_event_timer_adapter_data { } #endif -#endif /* __RTE_EVENT_TIMER_ADAPTER_PMD_H__ */ +#endif /* __EVENT_TIMER_ADAPTER_PMD_H__ */ diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index 764555d54c..6646db4918 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -24,8 +24,8 @@ #include #include +#include "event_timer_adapter_pmd.h" #include "rte_eventdev.h" -#include "rte_event_timer_adapter_pmd.h" /* Logging Macros */ #define RTE_EDEV_LOG_ERR(...) \ @@ -591,10 +591,8 @@ struct rte_event_eth_rx_adapter_queue_conf; * */ typedef int (*eventdev_timer_adapter_caps_get_t)( - const struct rte_eventdev *dev, - uint64_t flags, - uint32_t *caps, - const struct rte_event_timer_adapter_ops **ops); + const struct rte_eventdev *dev, uint64_t flags, uint32_t *caps, + const struct event_timer_adapter_ops **ops); /** * Add ethernet Rx queues to event device. This callback is invoked if diff --git a/lib/eventdev/meson.build b/lib/eventdev/meson.build index 9051ff04b7..f19b831edd 100644 --- a/lib/eventdev/meson.build +++ b/lib/eventdev/meson.build @@ -24,7 +24,6 @@ headers = files( 'rte_event_ring.h', 'rte_event_eth_rx_adapter.h', 'rte_event_timer_adapter.h', - 'rte_event_timer_adapter_pmd.h', 'rte_event_crypto_adapter.h', 'rte_event_eth_tx_adapter.h', ) @@ -35,6 +34,7 @@ driver_sdk_headers += files( 'eventdev_pmd.h', 'eventdev_pmd_pci.h', 'eventdev_pmd_vdev.h', + 'event_timer_adapter_pmd.h', ) deps += ['ring', 'ethdev', 'hash', 'mempool', 'mbuf', 'timer', 'cryptodev'] diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c index ee20b39f4b..ae55407042 100644 --- a/lib/eventdev/rte_event_timer_adapter.c +++ b/lib/eventdev/rte_event_timer_adapter.c @@ -20,11 +20,11 @@ #include #include -#include "rte_eventdev.h" +#include "event_timer_adapter_pmd.h" #include "eventdev_pmd.h" -#include "rte_eventdev_trace.h" #include "rte_event_timer_adapter.h" -#include "rte_event_timer_adapter_pmd.h" +#include "rte_eventdev.h" +#include "rte_eventdev_trace.h" #define DATA_MZ_NAME_MAX_LEN 64 #define DATA_MZ_NAME_FORMAT "rte_event_timer_adapter_data_%d" @@ -35,7 +35,7 @@ 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 const struct rte_event_timer_adapter_ops swtim_ops; +static const struct event_timer_adapter_ops swtim_ops; #define EVTIM_LOG(level, logtype, ...) \ rte_log(RTE_LOG_ ## level, logtype, \ @@ -1207,15 +1207,15 @@ swtim_arm_tmo_tick_burst(const struct rte_event_timer_adapter *adapter, return __swtim_arm_burst(adapter, evtims, nb_evtims); } -static const struct rte_event_timer_adapter_ops swtim_ops = { - .init = swtim_init, - .uninit = swtim_uninit, - .start = swtim_start, - .stop = swtim_stop, - .get_info = swtim_get_info, - .stats_get = swtim_stats_get, - .stats_reset = swtim_stats_reset, - .arm_burst = swtim_arm_burst, - .arm_tmo_tick_burst = swtim_arm_tmo_tick_burst, - .cancel_burst = swtim_cancel_burst, +static const struct event_timer_adapter_ops swtim_ops = { + .init = swtim_init, + .uninit = swtim_uninit, + .start = swtim_start, + .stop = swtim_stop, + .get_info = swtim_get_info, + .stats_get = swtim_stats_get, + .stats_reset = swtim_stats_reset, + .arm_burst = swtim_arm_burst, + .arm_tmo_tick_burst = swtim_arm_tmo_tick_burst, + .cancel_burst = swtim_cancel_burst, }; diff --git a/lib/eventdev/rte_event_timer_adapter.h b/lib/eventdev/rte_event_timer_adapter.h index 4e0d2a819b..cad6d3b4c5 100644 --- a/lib/eventdev/rte_event_timer_adapter.h +++ b/lib/eventdev/rte_event_timer_adapter.h @@ -523,7 +523,7 @@ struct rte_event_timer_adapter { /**< Pointer to driver cancel function. */ struct rte_event_timer_adapter_data *data; /**< Pointer to shared adapter data */ - const struct rte_event_timer_adapter_ops *ops; + const struct event_timer_adapter_ops *ops; /**< Functions exported by adapter driver */ RTE_STD_C11 diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index 7a70c7a963..8de5f8b47f 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -142,7 +142,7 @@ int rte_event_timer_adapter_caps_get(uint8_t dev_id, uint32_t *caps) { struct rte_eventdev *dev; - const struct rte_event_timer_adapter_ops *ops; + const struct event_timer_adapter_ops *ops; RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); From patchwork Sun Oct 3 08:27:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100387 X-Patchwork-Delegate: jerinj@marvell.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 2002FA034F; Sun, 3 Oct 2021 10:32:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3B6D741272; Sun, 3 Oct 2021 10:32:08 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 349D241272 for ; Sun, 3 Oct 2021 10:32:06 +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 1935YSUu017438; Sun, 3 Oct 2021 01:32:05 -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=iUUTgbNHYdguLJUX8szXYM7L53Mg7Eg1Ailo04ZKxuQ=; b=fbB0fXWjbGr8N8+xfKK8s8UgoTprvgBhEwFOfco+DI4DZrxAzu6eJxFHx6hjVMguMbu2 VBn30VerbncjELLEHToUKfjaEArTyURuBZbAFurKb1+uHwuz5EEDfga+iCBdA669Jyim 4EJzNpCaAerFWh3P0nING9wanfQQuPAD4IKh1cVz+g/9V8YaW1Ay5m8iO8FejnDiZHCm pajv2myIJe0/PsJN06SMYtlwr+2JBupstwLhlLC7jC75sHmCmQa+NcfpqJthKL6ntUIn ONl6vIUVey9LI/ccBMkgnJO1NtskRsn9vALVqbXDotx6i1ZIsrLy9cL2HcJDVLkvjrYW qA== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com with ESMTP id 3bf6g3gbk5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:32:05 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:32:03 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:32:03 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id BD2B63F7059; Sun, 3 Oct 2021 01:32:01 -0700 (PDT) From: To: , Abhinandan Gujjar , "Jay Jayatheerthan" CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:05 +0530 Message-ID: <20211003082710.8398-9-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: vUQgCkn_9GZjZzC2Z-HPo-QuQ9o2VN-o X-Proofpoint-ORIG-GUID: vUQgCkn_9GZjZzC2Z-HPo-QuQ9o2VN-o X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 08/13] eventdev: remove rte prefix for internal structs 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 Remove rte_ prefix from rte_eth_event_enqueue_buffer, rte_event_eth_rx_adapter and rte_event_crypto_adapter as they are only used in rte_event_eth_rx_adapter.c and rte_event_crypto_adapter.c Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/rte_event_crypto_adapter.c | 66 +++---- lib/eventdev/rte_event_eth_rx_adapter.c | 249 ++++++++++-------------- lib/eventdev/rte_eventdev.h | 2 +- 3 files changed, 141 insertions(+), 176 deletions(-) diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index ebfc8326a8..e9e660a3d2 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -30,7 +30,7 @@ */ #define CRYPTO_ENQ_FLUSH_THRESHOLD 1024 -struct rte_event_crypto_adapter { +struct event_crypto_adapter { /* Event device identifier */ uint8_t eventdev_id; /* Event port identifier */ @@ -99,7 +99,7 @@ struct crypto_queue_pair_info { uint8_t len; } __rte_cache_aligned; -static struct rte_event_crypto_adapter **event_crypto_adapter; +static struct event_crypto_adapter **event_crypto_adapter; /* Macros to check for valid adapter */ #define EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, retval) do { \ @@ -141,7 +141,7 @@ eca_init(void) return 0; } -static inline struct rte_event_crypto_adapter * +static inline struct event_crypto_adapter * eca_id_to_adapter(uint8_t id) { return event_crypto_adapter ? @@ -158,7 +158,7 @@ eca_default_config_cb(uint8_t id, uint8_t dev_id, int started; int ret; struct rte_event_port_conf *port_conf = arg; - struct rte_event_crypto_adapter *adapter = eca_id_to_adapter(id); + struct event_crypto_adapter *adapter = eca_id_to_adapter(id); if (adapter == NULL) return -EINVAL; @@ -202,7 +202,7 @@ rte_event_crypto_adapter_create_ext(uint8_t id, uint8_t dev_id, enum rte_event_crypto_adapter_mode mode, void *conf_arg) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; char mem_name[CRYPTO_ADAPTER_NAME_LEN]; struct rte_event_dev_info dev_info; int socket_id; @@ -304,7 +304,7 @@ rte_event_crypto_adapter_create(uint8_t id, uint8_t dev_id, int rte_event_crypto_adapter_free(uint8_t id) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); @@ -329,8 +329,8 @@ rte_event_crypto_adapter_free(uint8_t id) } static inline unsigned int -eca_enq_to_cryptodev(struct rte_event_crypto_adapter *adapter, - struct rte_event *ev, unsigned int cnt) +eca_enq_to_cryptodev(struct event_crypto_adapter *adapter, struct rte_event *ev, + unsigned int cnt) { struct rte_event_crypto_adapter_stats *stats = &adapter->crypto_stats; union rte_event_crypto_metadata *m_data = NULL; @@ -420,7 +420,7 @@ eca_enq_to_cryptodev(struct rte_event_crypto_adapter *adapter, } static unsigned int -eca_crypto_enq_flush(struct rte_event_crypto_adapter *adapter) +eca_crypto_enq_flush(struct event_crypto_adapter *adapter) { struct rte_event_crypto_adapter_stats *stats = &adapter->crypto_stats; struct crypto_device_info *curr_dev; @@ -466,8 +466,8 @@ eca_crypto_enq_flush(struct rte_event_crypto_adapter *adapter) } static int -eca_crypto_adapter_enq_run(struct rte_event_crypto_adapter *adapter, - unsigned int max_enq) +eca_crypto_adapter_enq_run(struct event_crypto_adapter *adapter, + unsigned int max_enq) { struct rte_event_crypto_adapter_stats *stats = &adapter->crypto_stats; struct rte_event ev[BATCH_SIZE]; @@ -500,8 +500,8 @@ eca_crypto_adapter_enq_run(struct rte_event_crypto_adapter *adapter, } static inline void -eca_ops_enqueue_burst(struct rte_event_crypto_adapter *adapter, - struct rte_crypto_op **ops, uint16_t num) +eca_ops_enqueue_burst(struct event_crypto_adapter *adapter, + struct rte_crypto_op **ops, uint16_t num) { struct rte_event_crypto_adapter_stats *stats = &adapter->crypto_stats; union rte_event_crypto_metadata *m_data = NULL; @@ -564,8 +564,8 @@ eca_ops_enqueue_burst(struct rte_event_crypto_adapter *adapter, } static inline unsigned int -eca_crypto_adapter_deq_run(struct rte_event_crypto_adapter *adapter, - unsigned int max_deq) +eca_crypto_adapter_deq_run(struct event_crypto_adapter *adapter, + unsigned int max_deq) { struct rte_event_crypto_adapter_stats *stats = &adapter->crypto_stats; struct crypto_device_info *curr_dev; @@ -627,8 +627,8 @@ eca_crypto_adapter_deq_run(struct rte_event_crypto_adapter *adapter, } static void -eca_crypto_adapter_run(struct rte_event_crypto_adapter *adapter, - unsigned int max_ops) +eca_crypto_adapter_run(struct event_crypto_adapter *adapter, + unsigned int max_ops) { while (max_ops) { unsigned int e_cnt, d_cnt; @@ -648,7 +648,7 @@ eca_crypto_adapter_run(struct rte_event_crypto_adapter *adapter, static int eca_service_func(void *args) { - struct rte_event_crypto_adapter *adapter = args; + struct event_crypto_adapter *adapter = args; if (rte_spinlock_trylock(&adapter->lock) == 0) return 0; @@ -659,7 +659,7 @@ eca_service_func(void *args) } static int -eca_init_service(struct rte_event_crypto_adapter *adapter, uint8_t id) +eca_init_service(struct event_crypto_adapter *adapter, uint8_t id) { struct rte_event_crypto_adapter_conf adapter_conf; struct rte_service_spec service; @@ -699,10 +699,9 @@ eca_init_service(struct rte_event_crypto_adapter *adapter, uint8_t id) } static void -eca_update_qp_info(struct rte_event_crypto_adapter *adapter, - struct crypto_device_info *dev_info, - int32_t queue_pair_id, - uint8_t add) +eca_update_qp_info(struct event_crypto_adapter *adapter, + struct crypto_device_info *dev_info, int32_t queue_pair_id, + uint8_t add) { struct crypto_queue_pair_info *qp_info; int enabled; @@ -729,9 +728,8 @@ eca_update_qp_info(struct rte_event_crypto_adapter *adapter, } static int -eca_add_queue_pair(struct rte_event_crypto_adapter *adapter, - uint8_t cdev_id, - int queue_pair_id) +eca_add_queue_pair(struct event_crypto_adapter *adapter, uint8_t cdev_id, + int queue_pair_id) { struct crypto_device_info *dev_info = &adapter->cdevs[cdev_id]; struct crypto_queue_pair_info *qpairs; @@ -773,7 +771,7 @@ rte_event_crypto_adapter_queue_pair_add(uint8_t id, int32_t queue_pair_id, const struct rte_event *event) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; struct rte_eventdev *dev; struct crypto_device_info *dev_info; uint32_t cap; @@ -889,7 +887,7 @@ int rte_event_crypto_adapter_queue_pair_del(uint8_t id, uint8_t cdev_id, int32_t queue_pair_id) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; struct crypto_device_info *dev_info; struct rte_eventdev *dev; int ret; @@ -975,7 +973,7 @@ rte_event_crypto_adapter_queue_pair_del(uint8_t id, uint8_t cdev_id, static int eca_adapter_ctrl(uint8_t id, int start) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; struct crypto_device_info *dev_info; struct rte_eventdev *dev; uint32_t i; @@ -1017,7 +1015,7 @@ eca_adapter_ctrl(uint8_t id, int start) int rte_event_crypto_adapter_start(uint8_t id) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); adapter = eca_id_to_adapter(id); @@ -1039,7 +1037,7 @@ int rte_event_crypto_adapter_stats_get(uint8_t id, struct rte_event_crypto_adapter_stats *stats) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; struct rte_event_crypto_adapter_stats dev_stats_sum = { 0 }; struct rte_event_crypto_adapter_stats dev_stats; struct rte_eventdev *dev; @@ -1083,7 +1081,7 @@ rte_event_crypto_adapter_stats_get(uint8_t id, int rte_event_crypto_adapter_stats_reset(uint8_t id) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; struct crypto_device_info *dev_info; struct rte_eventdev *dev; uint32_t i; @@ -1111,7 +1109,7 @@ rte_event_crypto_adapter_stats_reset(uint8_t id) int rte_event_crypto_adapter_service_id_get(uint8_t id, uint32_t *service_id) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); @@ -1128,7 +1126,7 @@ rte_event_crypto_adapter_service_id_get(uint8_t id, uint32_t *service_id) int rte_event_crypto_adapter_event_port_get(uint8_t id, uint8_t *event_port_id) { - struct rte_event_crypto_adapter *adapter; + struct event_crypto_adapter *adapter; EVENT_CRYPTO_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index 13dfb28401..f8225ebd3d 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -78,14 +78,14 @@ struct eth_rx_vector_data { TAILQ_HEAD(eth_rx_vector_data_list, eth_rx_vector_data); /* Instance per adapter */ -struct rte_eth_event_enqueue_buffer { +struct eth_event_enqueue_buffer { /* Count of events in this buffer */ uint16_t count; /* Array of events in this buffer */ struct rte_event events[ETH_EVENT_BUFFER_SIZE]; }; -struct rte_event_eth_rx_adapter { +struct event_eth_rx_adapter { /* RSS key */ uint8_t rss_key_be[RSS_KEY_SIZE]; /* Event device identifier */ @@ -109,7 +109,7 @@ struct rte_event_eth_rx_adapter { /* Next entry in wrr[] to begin polling */ uint32_t wrr_pos; /* Event burst buffer */ - struct rte_eth_event_enqueue_buffer event_enqueue_buffer; + struct eth_event_enqueue_buffer event_enqueue_buffer; /* Vector enable flag */ uint8_t ena_vector; /* Timestamp of previous vector expiry list traversal */ @@ -231,7 +231,7 @@ struct eth_rx_queue_info { struct eth_rx_vector_data vector_data; }; -static struct rte_event_eth_rx_adapter **event_eth_rx_adapter; +static struct event_eth_rx_adapter **event_eth_rx_adapter; static inline int rxa_validate_id(uint8_t id) @@ -247,7 +247,7 @@ rxa_validate_id(uint8_t id) } while (0) static inline int -rxa_sw_adapter_queue_count(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_sw_adapter_queue_count(struct event_eth_rx_adapter *rx_adapter) { return rx_adapter->num_rx_polled + rx_adapter->num_rx_intr; } @@ -265,10 +265,9 @@ static uint16_t rxa_gcd_u16(uint16_t a, uint16_t b) * http://kb.linuxvirtualserver.org/wiki/Weighted_Round-Robin_Scheduling */ static int -rxa_wrr_next(struct rte_event_eth_rx_adapter *rx_adapter, - unsigned int n, int *cw, - struct eth_rx_poll_entry *eth_rx_poll, uint16_t max_wt, - uint16_t gcd, int prev) +rxa_wrr_next(struct event_eth_rx_adapter *rx_adapter, unsigned int n, int *cw, + struct eth_rx_poll_entry *eth_rx_poll, uint16_t max_wt, + uint16_t gcd, int prev) { int i = prev; uint16_t w; @@ -373,10 +372,9 @@ rxa_nb_intr_vect(struct eth_device_info *dev_info, int rx_queue_id, int add) /* Calculate nb_rx_intr after deleting interrupt mode rx queues */ static void -rxa_calc_nb_post_intr_del(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id, - uint32_t *nb_rx_intr) +rxa_calc_nb_post_intr_del(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id, + uint32_t *nb_rx_intr) { uint32_t intr_diff; @@ -392,12 +390,10 @@ rxa_calc_nb_post_intr_del(struct rte_event_eth_rx_adapter *rx_adapter, * interrupt queues could currently be poll mode Rx queues */ static void -rxa_calc_nb_post_add_intr(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id, - uint32_t *nb_rx_poll, - uint32_t *nb_rx_intr, - uint32_t *nb_wrr) +rxa_calc_nb_post_add_intr(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id, + uint32_t *nb_rx_poll, uint32_t *nb_rx_intr, + uint32_t *nb_wrr) { uint32_t intr_diff; uint32_t poll_diff; @@ -424,11 +420,9 @@ rxa_calc_nb_post_add_intr(struct rte_event_eth_rx_adapter *rx_adapter, * after deleting poll mode rx queues */ static void -rxa_calc_nb_post_poll_del(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id, - uint32_t *nb_rx_poll, - uint32_t *nb_wrr) +rxa_calc_nb_post_poll_del(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id, + uint32_t *nb_rx_poll, uint32_t *nb_wrr) { uint32_t poll_diff; uint32_t wrr_len_diff; @@ -449,13 +443,10 @@ rxa_calc_nb_post_poll_del(struct rte_event_eth_rx_adapter *rx_adapter, /* Calculate nb_rx_* after adding poll mode rx queues */ static void -rxa_calc_nb_post_add_poll(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id, - uint16_t wt, - uint32_t *nb_rx_poll, - uint32_t *nb_rx_intr, - uint32_t *nb_wrr) +rxa_calc_nb_post_add_poll(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id, + uint16_t wt, uint32_t *nb_rx_poll, + uint32_t *nb_rx_intr, uint32_t *nb_wrr) { uint32_t intr_diff; uint32_t poll_diff; @@ -482,13 +473,10 @@ rxa_calc_nb_post_add_poll(struct rte_event_eth_rx_adapter *rx_adapter, /* Calculate nb_rx_* after adding rx_queue_id */ static void -rxa_calc_nb_post_add(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id, - uint16_t wt, - uint32_t *nb_rx_poll, - uint32_t *nb_rx_intr, - uint32_t *nb_wrr) +rxa_calc_nb_post_add(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id, + uint16_t wt, uint32_t *nb_rx_poll, uint32_t *nb_rx_intr, + uint32_t *nb_wrr) { if (wt != 0) rxa_calc_nb_post_add_poll(rx_adapter, dev_info, rx_queue_id, @@ -500,12 +488,10 @@ rxa_calc_nb_post_add(struct rte_event_eth_rx_adapter *rx_adapter, /* Calculate nb_rx_* after deleting rx_queue_id */ static void -rxa_calc_nb_post_del(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id, - uint32_t *nb_rx_poll, - uint32_t *nb_rx_intr, - uint32_t *nb_wrr) +rxa_calc_nb_post_del(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id, + uint32_t *nb_rx_poll, uint32_t *nb_rx_intr, + uint32_t *nb_wrr) { rxa_calc_nb_post_poll_del(rx_adapter, dev_info, rx_queue_id, nb_rx_poll, nb_wrr); @@ -517,8 +503,7 @@ rxa_calc_nb_post_del(struct rte_event_eth_rx_adapter *rx_adapter, * Allocate the rx_poll array */ static struct eth_rx_poll_entry * -rxa_alloc_poll(struct rte_event_eth_rx_adapter *rx_adapter, - uint32_t num_rx_polled) +rxa_alloc_poll(struct event_eth_rx_adapter *rx_adapter, uint32_t num_rx_polled) { size_t len; @@ -534,7 +519,7 @@ rxa_alloc_poll(struct rte_event_eth_rx_adapter *rx_adapter, * Allocate the WRR array */ static uint32_t * -rxa_alloc_wrr(struct rte_event_eth_rx_adapter *rx_adapter, int nb_wrr) +rxa_alloc_wrr(struct event_eth_rx_adapter *rx_adapter, int nb_wrr) { size_t len; @@ -547,11 +532,9 @@ rxa_alloc_wrr(struct rte_event_eth_rx_adapter *rx_adapter, int nb_wrr) } static int -rxa_alloc_poll_arrays(struct rte_event_eth_rx_adapter *rx_adapter, - uint32_t nb_poll, - uint32_t nb_wrr, - struct eth_rx_poll_entry **rx_poll, - uint32_t **wrr_sched) +rxa_alloc_poll_arrays(struct event_eth_rx_adapter *rx_adapter, uint32_t nb_poll, + uint32_t nb_wrr, struct eth_rx_poll_entry **rx_poll, + uint32_t **wrr_sched) { if (nb_poll == 0) { @@ -576,9 +559,8 @@ rxa_alloc_poll_arrays(struct rte_event_eth_rx_adapter *rx_adapter, /* Precalculate WRR polling sequence for all queues in rx_adapter */ static void -rxa_calc_wrr_sequence(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_rx_poll_entry *rx_poll, - uint32_t *rx_wrr) +rxa_calc_wrr_sequence(struct event_eth_rx_adapter *rx_adapter, + struct eth_rx_poll_entry *rx_poll, uint32_t *rx_wrr) { uint16_t d; uint16_t q; @@ -705,13 +687,13 @@ rxa_do_softrss(struct rte_mbuf *m, const uint8_t *rss_key_be) } static inline int -rxa_enq_blocked(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_enq_blocked(struct event_eth_rx_adapter *rx_adapter) { return !!rx_adapter->enq_block_count; } static inline void -rxa_enq_block_start_ts(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_enq_block_start_ts(struct event_eth_rx_adapter *rx_adapter) { if (rx_adapter->rx_enq_block_start_ts) return; @@ -724,8 +706,8 @@ rxa_enq_block_start_ts(struct rte_event_eth_rx_adapter *rx_adapter) } static inline void -rxa_enq_block_end_ts(struct rte_event_eth_rx_adapter *rx_adapter, - struct rte_event_eth_rx_adapter_stats *stats) +rxa_enq_block_end_ts(struct event_eth_rx_adapter *rx_adapter, + struct rte_event_eth_rx_adapter_stats *stats) { if (unlikely(!stats->rx_enq_start_ts)) stats->rx_enq_start_ts = rte_get_tsc_cycles(); @@ -744,10 +726,10 @@ rxa_enq_block_end_ts(struct rte_event_eth_rx_adapter *rx_adapter, /* Enqueue buffered events to event device */ static inline uint16_t -rxa_flush_event_buffer(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_flush_event_buffer(struct event_eth_rx_adapter *rx_adapter) { - struct rte_eth_event_enqueue_buffer *buf = - &rx_adapter->event_enqueue_buffer; + struct eth_event_enqueue_buffer *buf = + &rx_adapter->event_enqueue_buffer; struct rte_event_eth_rx_adapter_stats *stats = &rx_adapter->stats; if (!buf->count) @@ -774,7 +756,7 @@ rxa_flush_event_buffer(struct rte_event_eth_rx_adapter *rx_adapter) } static inline void -rxa_init_vector(struct rte_event_eth_rx_adapter *rx_adapter, +rxa_init_vector(struct event_eth_rx_adapter *rx_adapter, struct eth_rx_vector_data *vec) { vec->vector_ev->nb_elem = 0; @@ -785,9 +767,9 @@ rxa_init_vector(struct rte_event_eth_rx_adapter *rx_adapter, } static inline uint16_t -rxa_create_event_vector(struct rte_event_eth_rx_adapter *rx_adapter, +rxa_create_event_vector(struct event_eth_rx_adapter *rx_adapter, struct eth_rx_queue_info *queue_info, - struct rte_eth_event_enqueue_buffer *buf, + struct eth_event_enqueue_buffer *buf, struct rte_mbuf **mbufs, uint16_t num) { struct rte_event *ev = &buf->events[buf->count]; @@ -845,19 +827,16 @@ rxa_create_event_vector(struct rte_event_eth_rx_adapter *rx_adapter, } static inline void -rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter, - uint16_t eth_dev_id, - uint16_t rx_queue_id, - struct rte_mbuf **mbufs, - uint16_t num) +rxa_buffer_mbufs(struct event_eth_rx_adapter *rx_adapter, uint16_t eth_dev_id, + uint16_t rx_queue_id, struct rte_mbuf **mbufs, uint16_t num) { uint32_t i; struct eth_device_info *dev_info = &rx_adapter->eth_devices[eth_dev_id]; struct eth_rx_queue_info *eth_rx_queue_info = &dev_info->rx_queue[rx_queue_id]; - struct rte_eth_event_enqueue_buffer *buf = - &rx_adapter->event_enqueue_buffer; + struct eth_event_enqueue_buffer *buf = + &rx_adapter->event_enqueue_buffer; struct rte_event *ev = &buf->events[buf->count]; uint64_t event = eth_rx_queue_info->event; uint32_t flow_id_mask = eth_rx_queue_info->flow_id_mask; @@ -909,16 +888,13 @@ rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter, /* Enqueue packets from to event buffer */ static inline uint32_t -rxa_eth_rx(struct rte_event_eth_rx_adapter *rx_adapter, - uint16_t port_id, - uint16_t queue_id, - uint32_t rx_count, - uint32_t max_rx, - int *rxq_empty) +rxa_eth_rx(struct event_eth_rx_adapter *rx_adapter, uint16_t port_id, + uint16_t queue_id, uint32_t rx_count, uint32_t max_rx, + int *rxq_empty) { struct rte_mbuf *mbufs[BATCH_SIZE]; - struct rte_eth_event_enqueue_buffer *buf = - &rx_adapter->event_enqueue_buffer; + struct eth_event_enqueue_buffer *buf = + &rx_adapter->event_enqueue_buffer; struct rte_event_eth_rx_adapter_stats *stats = &rx_adapter->stats; uint16_t n; @@ -953,8 +929,7 @@ rxa_eth_rx(struct rte_event_eth_rx_adapter *rx_adapter, } static inline void -rxa_intr_ring_enqueue(struct rte_event_eth_rx_adapter *rx_adapter, - void *data) +rxa_intr_ring_enqueue(struct event_eth_rx_adapter *rx_adapter, void *data) { uint16_t port_id; uint16_t queue; @@ -994,8 +969,8 @@ rxa_intr_ring_enqueue(struct rte_event_eth_rx_adapter *rx_adapter, } static int -rxa_intr_ring_check_avail(struct rte_event_eth_rx_adapter *rx_adapter, - uint32_t num_intr_vec) +rxa_intr_ring_check_avail(struct event_eth_rx_adapter *rx_adapter, + uint32_t num_intr_vec) { if (rx_adapter->num_intr_vec + num_intr_vec > RTE_EVENT_ETH_INTR_RING_SIZE) { @@ -1010,9 +985,9 @@ rxa_intr_ring_check_avail(struct rte_event_eth_rx_adapter *rx_adapter, /* Delete entries for (dev, queue) from the interrupt ring */ static void -rxa_intr_ring_del_entries(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - uint16_t rx_queue_id) +rxa_intr_ring_del_entries(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, + uint16_t rx_queue_id) { int i, n; union queue_data qd; @@ -1045,7 +1020,7 @@ rxa_intr_ring_del_entries(struct rte_event_eth_rx_adapter *rx_adapter, static void * rxa_intr_thread(void *arg) { - struct rte_event_eth_rx_adapter *rx_adapter = arg; + struct event_eth_rx_adapter *rx_adapter = arg; struct rte_epoll_event *epoll_events = rx_adapter->epoll_events; int n, i; @@ -1068,12 +1043,12 @@ rxa_intr_thread(void *arg) * mbufs to eventdev */ static inline uint32_t -rxa_intr_ring_dequeue(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_intr_ring_dequeue(struct event_eth_rx_adapter *rx_adapter) { uint32_t n; uint32_t nb_rx = 0; int rxq_empty; - struct rte_eth_event_enqueue_buffer *buf; + struct eth_event_enqueue_buffer *buf; rte_spinlock_t *ring_lock; uint8_t max_done = 0; @@ -1188,11 +1163,11 @@ rxa_intr_ring_dequeue(struct rte_event_eth_rx_adapter *rx_adapter) * it. */ static inline uint32_t -rxa_poll(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_poll(struct event_eth_rx_adapter *rx_adapter) { uint32_t num_queue; uint32_t nb_rx = 0; - struct rte_eth_event_enqueue_buffer *buf; + struct eth_event_enqueue_buffer *buf; uint32_t wrr_pos; uint32_t max_nb_rx; @@ -1233,8 +1208,8 @@ rxa_poll(struct rte_event_eth_rx_adapter *rx_adapter) static void rxa_vector_expire(struct eth_rx_vector_data *vec, void *arg) { - struct rte_event_eth_rx_adapter *rx_adapter = arg; - struct rte_eth_event_enqueue_buffer *buf = + struct event_eth_rx_adapter *rx_adapter = arg; + struct eth_event_enqueue_buffer *buf = &rx_adapter->event_enqueue_buffer; struct rte_event *ev; @@ -1257,7 +1232,7 @@ rxa_vector_expire(struct eth_rx_vector_data *vec, void *arg) static int rxa_service_func(void *args) { - struct rte_event_eth_rx_adapter *rx_adapter = args; + struct event_eth_rx_adapter *rx_adapter = args; struct rte_event_eth_rx_adapter_stats *stats; if (rte_spinlock_trylock(&rx_adapter->rx_lock) == 0) @@ -1318,7 +1293,7 @@ rte_event_eth_rx_adapter_init(void) return 0; } -static inline struct rte_event_eth_rx_adapter * +static inline struct event_eth_rx_adapter * rxa_id_to_adapter(uint8_t id) { return event_eth_rx_adapter ? @@ -1335,7 +1310,7 @@ rxa_default_conf_cb(uint8_t id, uint8_t dev_id, int started; uint8_t port_id; struct rte_event_port_conf *port_conf = arg; - struct rte_event_eth_rx_adapter *rx_adapter = rxa_id_to_adapter(id); + struct event_eth_rx_adapter *rx_adapter = rxa_id_to_adapter(id); dev = &rte_eventdevs[rx_adapter->eventdev_id]; dev_conf = dev->data->dev_conf; @@ -1384,7 +1359,7 @@ rxa_epoll_create1(void) } static int -rxa_init_epd(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_init_epd(struct event_eth_rx_adapter *rx_adapter) { if (rx_adapter->epd != INIT_FD) return 0; @@ -1401,7 +1376,7 @@ rxa_init_epd(struct rte_event_eth_rx_adapter *rx_adapter) } static int -rxa_create_intr_thread(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_create_intr_thread(struct event_eth_rx_adapter *rx_adapter) { int err; char thread_name[RTE_MAX_THREAD_NAME_LEN]; @@ -1445,7 +1420,7 @@ rxa_create_intr_thread(struct rte_event_eth_rx_adapter *rx_adapter) } static int -rxa_destroy_intr_thread(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_destroy_intr_thread(struct event_eth_rx_adapter *rx_adapter) { int err; @@ -1466,7 +1441,7 @@ rxa_destroy_intr_thread(struct rte_event_eth_rx_adapter *rx_adapter) } static int -rxa_free_intr_resources(struct rte_event_eth_rx_adapter *rx_adapter) +rxa_free_intr_resources(struct event_eth_rx_adapter *rx_adapter) { int ret; @@ -1484,9 +1459,8 @@ rxa_free_intr_resources(struct rte_event_eth_rx_adapter *rx_adapter) } static int -rxa_disable_intr(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - uint16_t rx_queue_id) +rxa_disable_intr(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, uint16_t rx_queue_id) { int err; uint16_t eth_dev_id = dev_info->dev->data->port_id; @@ -1514,9 +1488,8 @@ rxa_disable_intr(struct rte_event_eth_rx_adapter *rx_adapter, } static int -rxa_del_intr_queue(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id) +rxa_del_intr_queue(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id) { int err; int i; @@ -1573,9 +1546,8 @@ rxa_del_intr_queue(struct rte_event_eth_rx_adapter *rx_adapter, } static int -rxa_config_intr(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - uint16_t rx_queue_id) +rxa_config_intr(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, uint16_t rx_queue_id) { int err, err1; uint16_t eth_dev_id = dev_info->dev->data->port_id; @@ -1663,9 +1635,8 @@ rxa_config_intr(struct rte_event_eth_rx_adapter *rx_adapter, } static int -rxa_add_intr_queue(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int rx_queue_id) +rxa_add_intr_queue(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int rx_queue_id) { int i, j, err; @@ -1713,9 +1684,8 @@ rxa_add_intr_queue(struct rte_event_eth_rx_adapter *rx_adapter, return err; } - static int -rxa_init_service(struct rte_event_eth_rx_adapter *rx_adapter, uint8_t id) +rxa_init_service(struct event_eth_rx_adapter *rx_adapter, uint8_t id) { int ret; struct rte_service_spec service; @@ -1758,10 +1728,9 @@ rxa_init_service(struct rte_event_eth_rx_adapter *rx_adapter, uint8_t id) } static void -rxa_update_queue(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int32_t rx_queue_id, - uint8_t add) +rxa_update_queue(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int32_t rx_queue_id, + uint8_t add) { struct eth_rx_queue_info *queue_info; int enabled; @@ -1811,9 +1780,8 @@ rxa_set_vector_data(struct eth_rx_queue_info *queue_info, uint16_t vector_count, } static void -rxa_sw_del(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int32_t rx_queue_id) +rxa_sw_del(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int32_t rx_queue_id) { struct eth_rx_vector_data *vec; int pollq; @@ -1854,10 +1822,9 @@ rxa_sw_del(struct rte_event_eth_rx_adapter *rx_adapter, } static void -rxa_add_queue(struct rte_event_eth_rx_adapter *rx_adapter, - struct eth_device_info *dev_info, - int32_t rx_queue_id, - const struct rte_event_eth_rx_adapter_queue_conf *conf) +rxa_add_queue(struct event_eth_rx_adapter *rx_adapter, + struct eth_device_info *dev_info, int32_t rx_queue_id, + const struct rte_event_eth_rx_adapter_queue_conf *conf) { struct eth_rx_queue_info *queue_info; const struct rte_event *ev = &conf->ev; @@ -1922,7 +1889,7 @@ rxa_add_queue(struct rte_event_eth_rx_adapter *rx_adapter, static void rxa_sw_event_vector_configure( - struct rte_event_eth_rx_adapter *rx_adapter, uint16_t eth_dev_id, + struct event_eth_rx_adapter *rx_adapter, uint16_t eth_dev_id, int rx_queue_id, const struct rte_event_eth_rx_adapter_event_vector_config *config) { @@ -1956,10 +1923,10 @@ rxa_sw_event_vector_configure( config->vector_timeout_ns >> 1; } -static int rxa_sw_add(struct rte_event_eth_rx_adapter *rx_adapter, - uint16_t eth_dev_id, - int rx_queue_id, - const struct rte_event_eth_rx_adapter_queue_conf *queue_conf) +static int +rxa_sw_add(struct event_eth_rx_adapter *rx_adapter, uint16_t eth_dev_id, + int rx_queue_id, + const struct rte_event_eth_rx_adapter_queue_conf *queue_conf) { struct eth_device_info *dev_info = &rx_adapter->eth_devices[eth_dev_id]; struct rte_event_eth_rx_adapter_queue_conf temp_conf; @@ -2088,7 +2055,7 @@ static int rxa_sw_add(struct rte_event_eth_rx_adapter *rx_adapter, static int rxa_ctrl(uint8_t id, int start) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct rte_eventdev *dev; struct eth_device_info *dev_info; uint32_t i; @@ -2135,7 +2102,7 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id, rte_event_eth_rx_adapter_conf_cb conf_cb, void *conf_arg) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; int ret; int socket_id; uint16_t i; @@ -2235,7 +2202,7 @@ rte_event_eth_rx_adapter_create(uint8_t id, uint8_t dev_id, int rte_event_eth_rx_adapter_free(uint8_t id) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; RTE_EVENT_ETH_RX_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); @@ -2267,7 +2234,7 @@ rte_event_eth_rx_adapter_queue_add(uint8_t id, { int ret; uint32_t cap; - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct rte_eventdev *dev; struct eth_device_info *dev_info; @@ -2385,7 +2352,7 @@ rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id, { int ret = 0; struct rte_eventdev *dev; - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct eth_device_info *dev_info; uint32_t cap; uint32_t nb_rx_poll = 0; @@ -2505,7 +2472,7 @@ rte_event_eth_rx_adapter_queue_event_vector_config( struct rte_event_eth_rx_adapter_event_vector_config *config) { struct rte_event_eth_rx_adapter_vector_limits limits; - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct rte_eventdev *dev; uint32_t cap; int ret; @@ -2632,7 +2599,7 @@ int rte_event_eth_rx_adapter_stats_get(uint8_t id, struct rte_event_eth_rx_adapter_stats *stats) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct rte_event_eth_rx_adapter_stats dev_stats_sum = { 0 }; struct rte_event_eth_rx_adapter_stats dev_stats; struct rte_eventdev *dev; @@ -2673,7 +2640,7 @@ rte_event_eth_rx_adapter_stats_get(uint8_t id, int rte_event_eth_rx_adapter_stats_reset(uint8_t id) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct rte_eventdev *dev; struct eth_device_info *dev_info; uint32_t i; @@ -2701,7 +2668,7 @@ rte_event_eth_rx_adapter_stats_reset(uint8_t id) int rte_event_eth_rx_adapter_service_id_get(uint8_t id, uint32_t *service_id) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; RTE_EVENT_ETH_RX_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL); @@ -2721,7 +2688,7 @@ rte_event_eth_rx_adapter_cb_register(uint8_t id, rte_event_eth_rx_adapter_cb_fn cb_fn, void *cb_arg) { - struct rte_event_eth_rx_adapter *rx_adapter; + struct event_eth_rx_adapter *rx_adapter; struct eth_device_info *dev_info; uint32_t cap; int ret; diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index 31fa9ac4b8..f1fcd6ce3d 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1193,7 +1193,7 @@ struct rte_event { #define RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID 0x4 /**< The application can override the adapter generated flow ID in the * event. This flow ID can be specified when adding an ethdev Rx queue - * to the adapter using the ev member of struct rte_event_eth_rx_adapter + * to the adapter using the ev.flow_id member. * @see struct rte_event_eth_rx_adapter_queue_conf::ev * @see struct rte_event_eth_rx_adapter_queue_conf::rx_queue_flags */ From patchwork Sun Oct 3 08:27:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100388 X-Patchwork-Delegate: jerinj@marvell.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 B5822A034F; Sun, 3 Oct 2021 10:32:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B4B6C4127B; Sun, 3 Oct 2021 10:32:10 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id C171B41276 for ; Sun, 3 Oct 2021 10:32:08 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1931o58n005289; Sun, 3 Oct 2021 01:32:08 -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=Yo5t5YM9FFX/8znJfVtByAEWW9Vvdy1UI7v1pf4Wmbk=; b=KyVV0/Z2UApwl8J85G3T4dTYkpKHW7z4ksZRApz6GoLFElHYZML4Bb8cQUvzz6sv3jpI MYR41LgUCl5Mg0RxCTI20sBZkGDywHQ/Y+WrbixHOa2zo7VmpmoMYu1Vuk9KhCnZ+n7t +cMBZjo3luNTQyZMcw5B+3sBhhQcnwS6y62VJyYFBhOKNio2wDQAwfWxV6rOAJjKGv6a rtCIT6g5lRiw9i4yL3r9l0wSfg1rFgq8RvlibuKLdc7MDoQvvflnncEN74vUQnT5+Nwm lsYIJX5FtRdhpyyfdQtgHbLVKiYWtkWmhEyLVKuIGAloxhh3uIXz7xmFdDTjTiOJjCLK Cw== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4nm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:32:08 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:32:06 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:32:06 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 8BFEA3F7059; Sun, 3 Oct 2021 01:32:04 -0700 (PDT) From: To: , Erik Gabriel Carrillo CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:06 +0530 Message-ID: <20211003082710.8398-10-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: ulbzAZHLd9y0-qy-kB31AdlvY0ybeo0q X-Proofpoint-ORIG-GUID: ulbzAZHLd9y0-qy-kB31AdlvY0ybeo0q X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 09/13] eventdev: rearrange fields in timer object 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 Rearrange fields in rte_event_timer data structure to remove holes. Also, remove use of volatile from rte_event_timer. Signed-off-by: Pavan Nikhilesh --- lib/eventdev/rte_event_timer_adapter.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eventdev/rte_event_timer_adapter.h b/lib/eventdev/rte_event_timer_adapter.h index cad6d3b4c5..1551741820 100644 --- a/lib/eventdev/rte_event_timer_adapter.h +++ b/lib/eventdev/rte_event_timer_adapter.h @@ -475,8 +475,6 @@ struct rte_event_timer { * - op: RTE_EVENT_OP_NEW * - event_type: RTE_EVENT_TYPE_TIMER */ - volatile enum rte_event_timer_state state; - /**< State of the event timer. */ uint64_t timeout_ticks; /**< Expiry timer ticks expressed in number of *timer_ticks_ns* from * now. @@ -488,6 +486,8 @@ struct rte_event_timer { * implementation specific values to share between the arm and cancel * operations. The application should not modify this field. */ + enum rte_event_timer_state state; + /**< State of the event timer. */ uint8_t user_meta[0]; /**< Memory to store user specific metadata. * The event timer adapter implementation should not modify this area. From patchwork Sun Oct 3 08:27:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100389 X-Patchwork-Delegate: jerinj@marvell.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 52E7BA034F; Sun, 3 Oct 2021 10:33:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CC29941262; Sun, 3 Oct 2021 10:32:12 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 359304127E for ; Sun, 3 Oct 2021 10:32:11 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1931o58o005289; Sun, 3 Oct 2021 01:32: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=Y7kOAu1iWmS8NMiorS92j/zF65j91rw8ROgcchunmcE=; b=eyjAZpYqKVG2G7W8PRTUJzkYHmr89m53IWeg/AZsbMs8AhXCTvFgcAfeelVSl+/vGICr WJK3toNirDmp4kHB+Nm1tPfK+t94886yMXAysLjewHOkSpIQ0ZnTxvY1AvHMLlKYq5kh 5feNNgPquU8MIvJ/71wlNnnNPNseUbTrbqmDXOJ6bSEHAMPraPaBqZvsrL4SJDPm68T7 EmwHphMHQmZRCn1EqNCTAZRnuU8Uh9FdYELgeuWkZ5smftVHxtok3bWFxo62g5CA77gN u3LkJ8wMyHfKPu1XQ6YL2RM4URawHa6KNZNJsags/M2wV0BLKLzff9Ro8DuoJXgh7lHv 5A== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4nn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:32:10 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:32: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; Sun, 3 Oct 2021 01:32:08 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 284EE3F7059; Sun, 3 Oct 2021 01:32:06 -0700 (PDT) From: To: , Erik Gabriel Carrillo CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:07 +0530 Message-ID: <20211003082710.8398-11-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: -T2Nu-jq4I9tK2nNY7EPPK1lFoJtuX3g X-Proofpoint-ORIG-GUID: -T2Nu-jq4I9tK2nNY7EPPK1lFoJtuX3g X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 10/13] 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 | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c index ae55407042..c4dc7a5fd4 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 */ From patchwork Sun Oct 3 08:27:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100390 X-Patchwork-Delegate: jerinj@marvell.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 13877A034F; Sun, 3 Oct 2021 10:33:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DC50141283; Sun, 3 Oct 2021 10:32:16 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 8F7324121F for ; Sun, 3 Oct 2021 10:32:15 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1936Jc6Z017472; Sun, 3 Oct 2021 01:32:13 -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=f9MxYw5eB5EYOKP+PUI02mkekgabLzd50jMrqQkJGck=; b=S2wYIvNA/2AXI6Ty4kGKZ00BHr7J84nnuSF0oTtWQKEHtB73oNfeBereiw7uIi4huXjK sCkkPqxhd0IvFuWwETEfz6fNzkDA2d3hC0eM8GThTA7knGUhgraEPY1q7XbkrNvy3gIL fG5tJRbV6vrvBhjfOXVIpNucI29hSBXNngCeR5OOBxX9TlQQ61N8z7oymdImUyj/2/VG A1Hi1iu4fAos+ccjuqWJlwLf8PqTCGKke1Z0h+B6fVwcozyWW3ClOFubeK6WeUFgSNHq sxr5vy7r9ATApovUKUhvD7hPyJQPvxlyUavsiGzjAE+8kmdILEy+GQolNVsQQFcnB/ab cg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4nr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:32:13 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:32:11 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:32:11 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id B7B813F7044; Sun, 3 Oct 2021 01:32:09 -0700 (PDT) From: To: , Jay Jayatheerthan , "Ray Kinsella" CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:08 +0530 Message-ID: <20211003082710.8398-12-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: QdJbTTaluUfn1IQam4jqcKIK_oB6M7Wz X-Proofpoint-ORIG-GUID: QdJbTTaluUfn1IQam4jqcKIK_oB6M7Wz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 11/13] eventdev: promote event vector API to stable 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 Promote event vector configuration APIs to stable. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan Acked-by: Ray Kinsella --- lib/eventdev/rte_event_eth_rx_adapter.h | 2 -- lib/eventdev/rte_eventdev.h | 1 - lib/eventdev/version.map | 6 +++--- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/eventdev/rte_event_eth_rx_adapter.h b/lib/eventdev/rte_event_eth_rx_adapter.h index 182dd2e5dd..d13d817025 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.h +++ b/lib/eventdev/rte_event_eth_rx_adapter.h @@ -543,7 +543,6 @@ int rte_event_eth_rx_adapter_cb_register(uint8_t id, uint16_t eth_dev_id, * - 0: Success. * - <0: Error code on failure. */ -__rte_experimental int rte_event_eth_rx_adapter_vector_limits_get( uint8_t dev_id, uint16_t eth_port_id, struct rte_event_eth_rx_adapter_vector_limits *limits); @@ -570,7 +569,6 @@ int rte_event_eth_rx_adapter_vector_limits_get( * - 0: Success, Receive queue configured correctly. * - <0: Error code on failure. */ -__rte_experimental int rte_event_eth_rx_adapter_queue_event_vector_config( uint8_t id, uint16_t eth_dev_id, int32_t rx_queue_id, struct rte_event_eth_rx_adapter_event_vector_config *config); diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index f1fcd6ce3d..14d4d9ec81 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1734,7 +1734,6 @@ int rte_event_dev_selftest(uint8_t dev_id); * - ENOMEM - no appropriate memory area found in which to create memzone * - ENAMETOOLONG - mempool name requested is too long. */ -__rte_experimental struct rte_mempool * rte_event_vector_pool_create(const char *name, unsigned int n, unsigned int cache_size, uint16_t nb_elem, diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map index 33ab447d4b..9c040fea0a 100644 --- a/lib/eventdev/version.map +++ b/lib/eventdev/version.map @@ -38,10 +38,12 @@ DPDK_22 { rte_event_eth_rx_adapter_free; rte_event_eth_rx_adapter_queue_add; rte_event_eth_rx_adapter_queue_del; + rte_event_eth_rx_adapter_queue_event_vector_config; rte_event_eth_rx_adapter_service_id_get; rte_event_eth_rx_adapter_start; rte_event_eth_rx_adapter_stats_get; rte_event_eth_rx_adapter_stats_reset; + rte_event_eth_rx_adapter_vector_limits_get; rte_event_eth_rx_adapter_stop; rte_event_eth_tx_adapter_caps_get; rte_event_eth_tx_adapter_create; @@ -83,6 +85,7 @@ DPDK_22 { rte_event_timer_arm_burst; rte_event_timer_arm_tmo_tick_burst; rte_event_timer_cancel_burst; + rte_event_vector_pool_create; rte_eventdevs; #added in 21.11 @@ -135,9 +138,6 @@ EXPERIMENTAL { __rte_eventdev_trace_port_setup; #added in 21.05 - rte_event_vector_pool_create; - rte_event_eth_rx_adapter_vector_limits_get; - rte_event_eth_rx_adapter_queue_event_vector_config; __rte_eventdev_trace_crypto_adapter_enqueue; }; From patchwork Sun Oct 3 08:27:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100391 X-Patchwork-Delegate: jerinj@marvell.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 5B2E8A034F; Sun, 3 Oct 2021 10:33:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E953341286; Sun, 3 Oct 2021 10:32:17 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id CFEE041221 for ; Sun, 3 Oct 2021 10:32:16 +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 1935YBtX017325; Sun, 3 Oct 2021 01:32:16 -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=oZL7oQUDUA1nvvO+pRBohECT9fi90snipwSQaAHXsLs=; b=jL8ydNyYz/SCpHnB9s4bQ4nstnsk+aud00I9tcFEhJGddnQtC2+X8Z6Dpq7jhAYmm67x cBwReHnxmD+e8E4pDXSIX85up+ketKuLRCRBnXItLufztkpamOns3G3/kiRAIcYepICt xIf5vpnwo/vLg+/N4Oi4Iaoqn0od8D34iv157CCw7AEHdN5bafRpFMhkq8CR8gZYLYZV 5J6WQsnM2vpbjLqqtbQtwEmElrCBVUcKulu5TpMD5d9gpD1p/qvR3dOl6O9yL1SHMnu9 /SQ9ALn+2+EapLlnE4oyXOxWbYenxl1Ci8rH1paDPZuurdb+CUjoyOBXENMXTT/A5cV0 0g== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com with ESMTP id 3bf6g3gbm3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:32:15 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:32:14 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:32:14 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 91C2D3F7044; Sun, 3 Oct 2021 01:32:12 -0700 (PDT) From: To: , Abhinandan Gujjar , "Jay Jayatheerthan" , Erik Gabriel Carrillo CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:09 +0530 Message-ID: <20211003082710.8398-13-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: mfJj9b1_Tl8Kw4hL1uQ_-oBYn3nuhsrs X-Proofpoint-ORIG-GUID: mfJj9b1_Tl8Kw4hL1uQ_-oBYn3nuhsrs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 12/13] eventdev: make trace APIs internal 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 Slowpath trace APIs are only used in rte_eventdev.c so make them as internal. Signed-off-by: Pavan Nikhilesh Acked-by: Jay Jayatheerthan --- lib/eventdev/{rte_eventdev_trace.h => eventdev_trace.h} | 0 lib/eventdev/eventdev_trace_points.c | 2 +- lib/eventdev/meson.build | 2 +- lib/eventdev/rte_event_crypto_adapter.c | 2 +- lib/eventdev/rte_event_eth_rx_adapter.c | 2 +- lib/eventdev/rte_event_eth_tx_adapter.c | 2 +- lib/eventdev/rte_event_timer_adapter.c | 2 +- lib/eventdev/rte_eventdev.c | 2 +- 8 files changed, 7 insertions(+), 7 deletions(-) rename lib/eventdev/{rte_eventdev_trace.h => eventdev_trace.h} (100%) diff --git a/lib/eventdev/rte_eventdev_trace.h b/lib/eventdev/eventdev_trace.h similarity index 100% rename from lib/eventdev/rte_eventdev_trace.h rename to lib/eventdev/eventdev_trace.h diff --git a/lib/eventdev/eventdev_trace_points.c b/lib/eventdev/eventdev_trace_points.c index 3867ec8008..237d9383fd 100644 --- a/lib/eventdev/eventdev_trace_points.c +++ b/lib/eventdev/eventdev_trace_points.c @@ -4,7 +4,7 @@ #include -#include "rte_eventdev_trace.h" +#include "eventdev_trace.h" /* Eventdev trace points */ RTE_TRACE_POINT_REGISTER(rte_eventdev_trace_configure, diff --git a/lib/eventdev/meson.build b/lib/eventdev/meson.build index f19b831edd..c750e0214f 100644 --- a/lib/eventdev/meson.build +++ b/lib/eventdev/meson.build @@ -19,7 +19,6 @@ sources = files( ) headers = files( 'rte_eventdev.h', - 'rte_eventdev_trace.h', 'rte_eventdev_trace_fp.h', 'rte_event_ring.h', 'rte_event_eth_rx_adapter.h', @@ -34,6 +33,7 @@ driver_sdk_headers += files( 'eventdev_pmd.h', 'eventdev_pmd_pci.h', 'eventdev_pmd_vdev.h', + 'eventdev_trace.h', 'event_timer_adapter_pmd.h', ) diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c index e9e660a3d2..ae1151fb75 100644 --- a/lib/eventdev/rte_event_crypto_adapter.c +++ b/lib/eventdev/rte_event_crypto_adapter.c @@ -16,7 +16,7 @@ #include "rte_eventdev.h" #include "eventdev_pmd.h" -#include "rte_eventdev_trace.h" +#include "eventdev_trace.h" #include "rte_event_crypto_adapter.h" #define BATCH_SIZE 32 diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c index f8225ebd3d..7e97fbd21d 100644 --- a/lib/eventdev/rte_event_eth_rx_adapter.c +++ b/lib/eventdev/rte_event_eth_rx_adapter.c @@ -20,7 +20,7 @@ #include "rte_eventdev.h" #include "eventdev_pmd.h" -#include "rte_eventdev_trace.h" +#include "eventdev_trace.h" #include "rte_event_eth_rx_adapter.h" #define BATCH_SIZE 32 diff --git a/lib/eventdev/rte_event_eth_tx_adapter.c b/lib/eventdev/rte_event_eth_tx_adapter.c index 18c0359db7..ee3631bced 100644 --- a/lib/eventdev/rte_event_eth_tx_adapter.c +++ b/lib/eventdev/rte_event_eth_tx_adapter.c @@ -6,7 +6,7 @@ #include #include "eventdev_pmd.h" -#include "rte_eventdev_trace.h" +#include "eventdev_trace.h" #include "rte_event_eth_tx_adapter.h" #define TXA_BATCH_SIZE 32 diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c index c4dc7a5fd4..7404b0cbb2 100644 --- a/lib/eventdev/rte_event_timer_adapter.c +++ b/lib/eventdev/rte_event_timer_adapter.c @@ -24,7 +24,7 @@ #include "eventdev_pmd.h" #include "rte_event_timer_adapter.h" #include "rte_eventdev.h" -#include "rte_eventdev_trace.h" +#include "eventdev_trace.h" #define DATA_MZ_NAME_MAX_LEN 64 #define DATA_MZ_NAME_FORMAT "rte_event_timer_adapter_data_%d" diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index 8de5f8b47f..7deaa5333c 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -36,7 +36,7 @@ #include "rte_eventdev.h" #include "eventdev_pmd.h" -#include "rte_eventdev_trace.h" +#include "eventdev_trace.h" static struct rte_eventdev rte_event_devices[RTE_EVENT_MAX_DEVS]; From patchwork Sun Oct 3 08:27:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 100392 X-Patchwork-Delegate: jerinj@marvell.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 230BAA034F; Sun, 3 Oct 2021 10:33:16 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EDF074123D; Sun, 3 Oct 2021 10:32:22 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 298454128A for ; Sun, 3 Oct 2021 10:32:21 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1934qwjC005198; Sun, 3 Oct 2021 01:32:19 -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=xsP2658uzWkwL6Aptoeumglzo1OA2gqnptw6tzbPcvw=; b=KaZIWxZXC+r1jjc3n4pCWNFK5g01+8eX+Zsexhfs+bOnRdDk3+nBCq6wjfiaeN09udzg zrDf4nZv/osk67ROqn7f4wf2Vs0qAxbqi7O5ZCSpckH6x/iSzKC2h49Ub8mMJ36+svI+ ijfME7hoFdT1DduPovtIaBSMoWTUWCWkcOnSUpUurgmQu8n66EJavj8Gm9bFF9bkTsB4 Op9+gpyQaKZkApTrKO58Df9RZSJ0z9LLVEwzKVRRN4lKTDA5TI7tE2zOiUAY6thOtmkI xV6D5H6YDdQjTMZTToH6SW3QTeCK/NGJzgHgJ5bhGPhNYcZGffZcu1r2pKCYjC65oTUD MQ== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com with ESMTP id 3bepxna4p8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 03 Oct 2021 01:32:19 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Sun, 3 Oct 2021 01:32:17 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Sun, 3 Oct 2021 01:32:17 -0700 Received: from BG-LT7430.marvell.com (BG-LT7430.marvell.com [10.28.177.176]) by maili.marvell.com (Postfix) with ESMTP id 9D9363F7072; Sun, 3 Oct 2021 01:32:15 -0700 (PDT) From: To: , Ray Kinsella CC: , Pavan Nikhilesh Date: Sun, 3 Oct 2021 13:57:10 +0530 Message-ID: <20211003082710.8398-14-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211003082710.8398-1-pbhagavatula@marvell.com> References: <20210823194020.1229-1-pbhagavatula@marvell.com> <20211003082710.8398-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: 6uChvQEjRxt4QhUgkP3sRB4TCvHqQEdm X-Proofpoint-ORIG-GUID: 6uChvQEjRxt4QhUgkP3sRB4TCvHqQEdm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-10-03_02,2021-10-01_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 13/13] eventdev: mark trace variables as internal 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 Mark rte_trace global variables as internal i.e. remove them from experimental section of version map. Some of them are used in inline APIs, mark those as global. Signed-off-by: Pavan Nikhilesh Acked-by: Ray Kinsella --- lib/eventdev/version.map | 77 ++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 42 deletions(-) diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map index 9c040fea0a..d21adedf14 100644 --- a/lib/eventdev/version.map +++ b/lib/eventdev/version.map @@ -88,57 +88,19 @@ DPDK_22 { rte_event_vector_pool_create; rte_eventdevs; - #added in 21.11 - rte_event_fp_ops; - - local: *; -}; - -EXPERIMENTAL { - global: - # added in 20.05 - __rte_eventdev_trace_configure; - __rte_eventdev_trace_queue_setup; - __rte_eventdev_trace_port_link; - __rte_eventdev_trace_port_unlink; - __rte_eventdev_trace_start; - __rte_eventdev_trace_stop; - __rte_eventdev_trace_close; + __rte_eventdev_trace_crypto_adapter_enqueue; __rte_eventdev_trace_deq_burst; __rte_eventdev_trace_enq_burst; - __rte_eventdev_trace_eth_rx_adapter_create; - __rte_eventdev_trace_eth_rx_adapter_free; - __rte_eventdev_trace_eth_rx_adapter_queue_add; - __rte_eventdev_trace_eth_rx_adapter_queue_del; - __rte_eventdev_trace_eth_rx_adapter_start; - __rte_eventdev_trace_eth_rx_adapter_stop; - __rte_eventdev_trace_eth_tx_adapter_create; - __rte_eventdev_trace_eth_tx_adapter_free; - __rte_eventdev_trace_eth_tx_adapter_queue_add; - __rte_eventdev_trace_eth_tx_adapter_queue_del; - __rte_eventdev_trace_eth_tx_adapter_start; - __rte_eventdev_trace_eth_tx_adapter_stop; __rte_eventdev_trace_eth_tx_adapter_enqueue; - __rte_eventdev_trace_timer_adapter_create; - __rte_eventdev_trace_timer_adapter_start; - __rte_eventdev_trace_timer_adapter_stop; - __rte_eventdev_trace_timer_adapter_free; __rte_eventdev_trace_timer_arm_burst; __rte_eventdev_trace_timer_arm_tmo_tick_burst; __rte_eventdev_trace_timer_cancel_burst; - __rte_eventdev_trace_crypto_adapter_create; - __rte_eventdev_trace_crypto_adapter_free; - __rte_eventdev_trace_crypto_adapter_queue_pair_add; - __rte_eventdev_trace_crypto_adapter_queue_pair_del; - __rte_eventdev_trace_crypto_adapter_start; - __rte_eventdev_trace_crypto_adapter_stop; - # changed in 20.11 - __rte_eventdev_trace_port_setup; + #added in 21.11 + rte_event_fp_ops; - #added in 21.05 - __rte_eventdev_trace_crypto_adapter_enqueue; + local: *; }; INTERNAL { @@ -156,4 +118,35 @@ INTERNAL { rte_event_pmd_release; rte_event_pmd_vdev_init; rte_event_pmd_vdev_uninit; + + __rte_eventdev_trace_close; + __rte_eventdev_trace_configure; + __rte_eventdev_trace_crypto_adapter_create; + __rte_eventdev_trace_crypto_adapter_free; + __rte_eventdev_trace_crypto_adapter_queue_pair_add; + __rte_eventdev_trace_crypto_adapter_queue_pair_del; + __rte_eventdev_trace_crypto_adapter_start; + __rte_eventdev_trace_crypto_adapter_stop; + __rte_eventdev_trace_eth_rx_adapter_create; + __rte_eventdev_trace_eth_rx_adapter_free; + __rte_eventdev_trace_eth_rx_adapter_queue_add; + __rte_eventdev_trace_eth_rx_adapter_queue_del; + __rte_eventdev_trace_eth_rx_adapter_start; + __rte_eventdev_trace_eth_rx_adapter_stop; + __rte_eventdev_trace_eth_tx_adapter_create; + __rte_eventdev_trace_eth_tx_adapter_free; + __rte_eventdev_trace_eth_tx_adapter_queue_add; + __rte_eventdev_trace_eth_tx_adapter_queue_del; + __rte_eventdev_trace_eth_tx_adapter_start; + __rte_eventdev_trace_eth_tx_adapter_stop; + __rte_eventdev_trace_port_link; + __rte_eventdev_trace_port_setup; + __rte_eventdev_trace_port_unlink; + __rte_eventdev_trace_queue_setup; + __rte_eventdev_trace_start; + __rte_eventdev_trace_stop; + __rte_eventdev_trace_timer_adapter_create; + __rte_eventdev_trace_timer_adapter_free; + __rte_eventdev_trace_timer_adapter_start; + __rte_eventdev_trace_timer_adapter_stop; };