From patchwork Thu Oct 13 11:35:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 118138 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 A836FA00C2; Thu, 13 Oct 2022 13:35:43 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 86F5E42E8A; Thu, 13 Oct 2022 13:35:43 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id E6CF642C95 for ; Thu, 13 Oct 2022 13:35:41 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29DABO5D025278; Thu, 13 Oct 2022 04:35:41 -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-type : content-transfer-encoding; s=pfpt0220; bh=xI0JFbgqAqweip1Yq+RiS7OsakLmF5gqAz1b9LNvhlE=; b=UGsvcbIrVWhnwmjqHhCRmjMVrp36EmdgiQR/PKC+Q3sdAoWu3Q6JHoI5yTFJtz1gu7QU LkAPvHcs3bnvHHCti0/IJf82lt04mkLbp0+a+lvSHpb5QfZbZ2uxeeay6qYKZyUs5VAK xVIvPssn8RnCXCm7p5PZTgdjZGfQHZ1tWLTkGPc7S6iDrelIRMsiZEqTE9MxjQYLmHl3 uBYhFmlHX7VlHhTWG4+1qxOfhABEeI6p8THXKYniiAspsdkxzOjq0ac5cvw86660yr9a vyukH4chjf4+MMyKhkRgVnkEzcFiNZSihBHIbd0/X4Aiu1sjlgsNklytAmeMHirBjo1e gg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3k67nqabv5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 13 Oct 2022 04:35:16 -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.2; Thu, 13 Oct 2022 04:35:14 -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; Thu, 13 Oct 2022 04:35:14 -0700 Received: from MININT-80QBFE8.corp.innovium.com (unknown [10.28.161.88]) by maili.marvell.com (Postfix) with ESMTP id 67B1E3F703F; Thu, 13 Oct 2022 04:35:09 -0700 (PDT) From: To: , , , Pavan Nikhilesh , Shijith Thotton , Timothy McDaniel , =?utf-8?q?Mattias_R=C3=B6nnb?= =?utf-8?q?lom?= , Liang Ma , Peter Mccarthy , "Harry van Haaren" CC: Subject: [PATCH v2] eventdev: increase xstats ID width to 64 bits Date: Thu, 13 Oct 2022 17:05:01 +0530 Message-ID: <20221013113501.7798-1-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221013092342.6861-1-pbhagavatula@marvell.com> References: <20221013092342.6861-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: h4TvezGbcI1piQR49ZZJXwA0MTMKFMSe X-Proofpoint-ORIG-GUID: h4TvezGbcI1piQR49ZZJXwA0MTMKFMSe X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-13_07,2022-10-13_01,2022-06-22_01 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 From: Pavan Nikhilesh Increase xstats ID width from 32 to 64 bits. This also fixes the xstats ID datatype discrepancy between reset and rest of the xstats family. Signed-off-by: Pavan Nikhilesh Acked-by: Morten Brørup Reviewed-by: Mattias Rönnblom Acked-by: Jerin Jacob --- v2 Changes: - Fix compilation on 32 bit platforms. (Mattias) doc/guides/rel_notes/release_22_11.rst | 5 ++ drivers/event/cnxk/cnxk_eventdev.h | 6 +- drivers/event/cnxk/cnxk_eventdev_stats.c | 6 +- drivers/event/dlb2/dlb2_priv.h | 8 +- drivers/event/dlb2/dlb2_xstats.c | 18 ++-- drivers/event/dsw/dsw_evdev.h | 6 +- drivers/event/dsw/dsw_xstats.c | 32 +++---- drivers/event/opdl/opdl_evdev.h | 8 +- drivers/event/opdl/opdl_evdev_xstats.c | 8 +- drivers/event/opdl/opdl_test.c | 4 +- drivers/event/sw/sw_evdev.h | 8 +- drivers/event/sw/sw_evdev_selftest.c | 101 +++++++++++------------ drivers/event/sw/sw_evdev_xstats.c | 18 ++-- lib/eventdev/eventdev_pmd.h | 8 +- lib/eventdev/rte_eventdev.c | 12 +-- lib/eventdev/rte_eventdev.h | 8 +- 16 files changed, 128 insertions(+), 128 deletions(-) -- 2.25.1 diff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst index 2da8bc9661..6b76ad5566 100644 --- a/doc/guides/rel_notes/release_22_11.rst +++ b/doc/guides/rel_notes/release_22_11.rst @@ -454,6 +454,11 @@ API Changes * raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` has been removed. +* eventdev: The datatype of the ID parameter in the functions + ``rte_event_dev_xstats_names_get``, ``rte_event_dev_xstats_get``, + ``rte_event_dev_xstats_by_name_get`` and ``rte_event_dev_xstats_reset`` + is changed to ``uint64_t`` from ``unsigned int`` and ``uint32_t``. + ABI Changes ----------- diff --git a/drivers/event/cnxk/cnxk_eventdev.h b/drivers/event/cnxk/cnxk_eventdev.h index f68c2aee23..738e335ea4 100644 --- a/drivers/event/cnxk/cnxk_eventdev.h +++ b/drivers/event/cnxk/cnxk_eventdev.h @@ -271,14 +271,14 @@ int cnxk_sso_xstats_get_names(const struct rte_eventdev *event_dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size); + uint64_t *ids, unsigned int size); int cnxk_sso_xstats_get(const struct rte_eventdev *event_dev, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, const unsigned int ids[], + uint8_t queue_port_id, const uint64_t ids[], uint64_t values[], unsigned int n); int cnxk_sso_xstats_reset(struct rte_eventdev *event_dev, enum rte_event_dev_xstats_mode mode, - int16_t queue_port_id, const uint32_t ids[], + int16_t queue_port_id, const uint64_t ids[], uint32_t n); /* CN9K */ diff --git a/drivers/event/cnxk/cnxk_eventdev_stats.c b/drivers/event/cnxk/cnxk_eventdev_stats.c index a3b548f462..715ca9cd8f 100644 --- a/drivers/event/cnxk/cnxk_eventdev_stats.c +++ b/drivers/event/cnxk/cnxk_eventdev_stats.c @@ -103,7 +103,7 @@ static struct cnxk_sso_xstats_name sso_hwgrp_xstats[] = { int cnxk_sso_xstats_get(const struct rte_eventdev *event_dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n) + const uint64_t ids[], uint64_t values[], unsigned int n) { struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev); struct roc_sso_hwgrp_stats hwgrp_stats; @@ -170,7 +170,7 @@ cnxk_sso_xstats_get(const struct rte_eventdev *event_dev, int cnxk_sso_xstats_reset(struct rte_eventdev *event_dev, enum rte_event_dev_xstats_mode mode, - int16_t queue_port_id, const uint32_t ids[], uint32_t n) + int16_t queue_port_id, const uint64_t ids[], uint32_t n) { struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev); struct roc_sso_hwgrp_stats hwgrp_stats; @@ -235,7 +235,7 @@ cnxk_sso_xstats_get_names(const struct rte_eventdev *event_dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size) + uint64_t *ids, unsigned int size) { struct rte_event_dev_xstats_name xstats_names_copy[CNXK_SSO_NUM_XSTATS]; struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev); diff --git a/drivers/event/dlb2/dlb2_priv.h b/drivers/event/dlb2/dlb2_priv.h index 9ef5bcb901..52f0ab9935 100644 --- a/drivers/event/dlb2/dlb2_priv.h +++ b/drivers/event/dlb2/dlb2_priv.h @@ -688,20 +688,20 @@ void dlb2_xstats_uninit(struct dlb2_eventdev *dlb2); int dlb2_eventdev_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n); + const uint64_t ids[], uint64_t values[], unsigned int n); int dlb2_eventdev_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstat_names, - unsigned int *ids, unsigned int size); + uint64_t *ids, unsigned int size); uint64_t dlb2_eventdev_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id); + const char *name, uint64_t *id); int dlb2_eventdev_xstats_reset(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids); int test_dlb2_eventdev(void); diff --git a/drivers/event/dlb2/dlb2_xstats.c b/drivers/event/dlb2/dlb2_xstats.c index d4c8d99034..ff15271dda 100644 --- a/drivers/event/dlb2/dlb2_xstats.c +++ b/drivers/event/dlb2/dlb2_xstats.c @@ -666,7 +666,7 @@ int dlb2_eventdev_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size) + uint64_t *ids, unsigned int size) { const struct dlb2_eventdev *dlb2 = dlb2_pmd_priv(dev); unsigned int i; @@ -717,7 +717,7 @@ dlb2_eventdev_xstats_get_names(const struct rte_eventdev *dev, static int dlb2_xstats_update(struct dlb2_eventdev *dlb2, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, const unsigned int ids[], + uint8_t queue_port_id, const uint64_t ids[], uint64_t values[], unsigned int n, const uint32_t reset) { unsigned int i; @@ -791,7 +791,7 @@ dlb2_xstats_update(struct dlb2_eventdev *dlb2, int dlb2_eventdev_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n) + const uint64_t ids[], uint64_t values[], unsigned int n) { struct dlb2_eventdev *dlb2 = dlb2_pmd_priv(dev); const uint32_t reset = 0; @@ -802,7 +802,7 @@ dlb2_eventdev_xstats_get(const struct rte_eventdev *dev, uint64_t dlb2_eventdev_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id) + const char *name, uint64_t *id) { struct dlb2_eventdev *dlb2 = dlb2_pmd_priv(dev); unsigned int i; @@ -876,7 +876,7 @@ dlb2_xstats_reset_range(struct dlb2_eventdev *dlb2, uint32_t start, static int dlb2_xstats_reset_queue(struct dlb2_eventdev *dlb2, uint8_t queue_id, - const uint32_t ids[], uint32_t nb_ids) + const uint64_t ids[], uint32_t nb_ids) { const uint32_t reset = 1; @@ -898,7 +898,7 @@ dlb2_xstats_reset_queue(struct dlb2_eventdev *dlb2, uint8_t queue_id, static int dlb2_xstats_reset_port(struct dlb2_eventdev *dlb2, uint8_t port_id, - const uint32_t ids[], uint32_t nb_ids) + const uint64_t ids[], uint32_t nb_ids) { const uint32_t reset = 1; int offset = dlb2->xstats_offset_for_port[port_id]; @@ -917,14 +917,14 @@ dlb2_xstats_reset_port(struct dlb2_eventdev *dlb2, uint8_t port_id, } static int -dlb2_xstats_reset_dev(struct dlb2_eventdev *dlb2, const uint32_t ids[], +dlb2_xstats_reset_dev(struct dlb2_eventdev *dlb2, const uint64_t ids[], uint32_t nb_ids) { uint32_t i; if (ids) { for (i = 0; i < nb_ids; i++) { - uint32_t id = ids[i]; + uint64_t id = ids[i]; if (id >= dlb2->xstats_count_mode_dev) return -EINVAL; @@ -942,7 +942,7 @@ int dlb2_eventdev_xstats_reset(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids) { struct dlb2_eventdev *dlb2 = dlb2_pmd_priv(dev); diff --git a/drivers/event/dsw/dsw_evdev.h b/drivers/event/dsw/dsw_evdev.h index df7dcc5577..6416a8a898 100644 --- a/drivers/event/dsw/dsw_evdev.h +++ b/drivers/event/dsw/dsw_evdev.h @@ -283,12 +283,12 @@ int dsw_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size); + uint64_t *ids, unsigned int size); int dsw_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n); + const uint64_t ids[], uint64_t values[], unsigned int n); uint64_t dsw_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id); + const char *name, uint64_t *id); static inline struct dsw_evdev * dsw_pmd_priv(const struct rte_eventdev *eventdev) diff --git a/drivers/event/dsw/dsw_xstats.c b/drivers/event/dsw/dsw_xstats.c index 4f7d4e3ff9..2a83a28b41 100644 --- a/drivers/event/dsw/dsw_xstats.c +++ b/drivers/event/dsw/dsw_xstats.c @@ -15,8 +15,8 @@ */ #define DSW_XSTATS_ID_PARAM_BITS (8) #define DSW_XSTATS_ID_STAT_BITS \ - (sizeof(unsigned int)*CHAR_BIT - DSW_XSTATS_ID_PARAM_BITS) -#define DSW_XSTATS_ID_STAT_MASK ((1 << DSW_XSTATS_ID_STAT_BITS) - 1) + (sizeof(uint64_t)*CHAR_BIT - DSW_XSTATS_ID_PARAM_BITS) +#define DSW_XSTATS_ID_STAT_MASK ((UINT64_C(1) << DSW_XSTATS_ID_STAT_BITS) - 1) #define DSW_XSTATS_ID_GET_PARAM(id) \ ((id)>>DSW_XSTATS_ID_STAT_BITS) @@ -25,7 +25,7 @@ ((id) & DSW_XSTATS_ID_STAT_MASK) #define DSW_XSTATS_ID_CREATE(id, param_value) \ - (((param_value) << DSW_XSTATS_ID_STAT_BITS) | id) + ((((uint64_t)param_value) << DSW_XSTATS_ID_STAT_BITS) | id) typedef uint64_t (*dsw_xstats_dev_get_value_fn)(struct dsw_evdev *dsw); @@ -169,7 +169,7 @@ static struct dsw_xstats_port dsw_port_xstats[] = { typedef void (*dsw_xstats_foreach_fn)(const char *xstats_name, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, unsigned int xstats_id, + uint8_t queue_port_id, uint64_t xstats_id, void *data); static void @@ -193,7 +193,7 @@ dsw_xstats_port_foreach(struct dsw_evdev *dsw, uint8_t port_id, stat_idx < RTE_DIM(dsw_port_xstats);) { struct dsw_xstats_port *xstat = &dsw_port_xstats[stat_idx]; char xstats_name[RTE_EVENT_DEV_XSTATS_NAME_SIZE]; - unsigned int xstats_id; + uint64_t xstats_id; if (xstat->per_queue) { xstats_id = DSW_XSTATS_ID_CREATE(stat_idx, queue_id); @@ -219,7 +219,7 @@ dsw_xstats_port_foreach(struct dsw_evdev *dsw, uint8_t port_id, struct store_ctx { struct rte_event_dev_xstats_name *names; - unsigned int *ids; + uint64_t *ids; unsigned int count; unsigned int capacity; }; @@ -227,7 +227,7 @@ struct store_ctx { static void dsw_xstats_store_stat(const char *xstats_name, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, unsigned int xstats_id, + uint8_t queue_port_id, uint64_t xstats_id, void *data) { struct store_ctx *ctx = data; @@ -248,7 +248,7 @@ dsw_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int capacity) + uint64_t *ids, unsigned int capacity) { struct dsw_evdev *dsw = dsw_pmd_priv(dev); @@ -276,13 +276,13 @@ dsw_xstats_get_names(const struct rte_eventdev *dev, static int dsw_xstats_dev_get(const struct rte_eventdev *dev, - const unsigned int ids[], uint64_t values[], unsigned int n) + const uint64_t ids[], uint64_t values[], unsigned int n) { struct dsw_evdev *dsw = dsw_pmd_priv(dev); unsigned int i; for (i = 0; i < n; i++) { - unsigned int id = ids[i]; + uint64_t id = ids[i]; struct dsw_xstat_dev *xstat = &dsw_dev_xstats[id]; values[i] = xstat->get_value_fn(dsw); } @@ -291,13 +291,13 @@ dsw_xstats_dev_get(const struct rte_eventdev *dev, static int dsw_xstats_port_get(const struct rte_eventdev *dev, uint8_t port_id, - const unsigned int ids[], uint64_t values[], unsigned int n) + const uint64_t ids[], uint64_t values[], unsigned int n) { struct dsw_evdev *dsw = dsw_pmd_priv(dev); unsigned int i; for (i = 0; i < n; i++) { - unsigned int id = ids[i]; + uint64_t id = ids[i]; unsigned int stat_idx = DSW_XSTATS_ID_GET_STAT(id); struct dsw_xstats_port *xstat = &dsw_port_xstats[stat_idx]; uint8_t queue_id = 0; @@ -313,7 +313,7 @@ dsw_xstats_port_get(const struct rte_eventdev *dev, uint8_t port_id, int dsw_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n) + const uint64_t ids[], uint64_t values[], unsigned int n) { switch (mode) { case RTE_EVENT_DEV_XSTATS_DEVICE: @@ -332,14 +332,14 @@ dsw_xstats_get(const struct rte_eventdev *dev, struct find_ctx { const struct rte_eventdev *dev; const char *name; - unsigned int *id; + uint64_t *id; uint64_t value; }; static void dsw_xstats_find_stat(const char *xstats_name, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, unsigned int xstats_id, + uint8_t queue_port_id, uint64_t xstats_id, void *data) { struct find_ctx *ctx = data; @@ -354,7 +354,7 @@ dsw_xstats_find_stat(const char *xstats_name, uint64_t dsw_xstats_get_by_name(const struct rte_eventdev *dev, const char *name, - unsigned int *id) + uint64_t *id) { struct dsw_evdev *dsw = dsw_pmd_priv(dev); uint16_t port_id; diff --git a/drivers/event/opdl/opdl_evdev.h b/drivers/event/opdl/opdl_evdev.h index 2dca0a8a98..1ca166b37c 100644 --- a/drivers/event/opdl/opdl_evdev.h +++ b/drivers/event/opdl/opdl_evdev.h @@ -289,16 +289,16 @@ int opdl_xstats_uninit(struct rte_eventdev *dev); int opdl_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size); + uint64_t *ids, unsigned int size); int opdl_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n); + const uint64_t ids[], uint64_t values[], unsigned int n); uint64_t opdl_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id); + const char *name, uint64_t *id); int opdl_xstats_reset(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids); int opdl_add_event_handlers(struct rte_eventdev *dev); diff --git a/drivers/event/opdl/opdl_evdev_xstats.c b/drivers/event/opdl/opdl_evdev_xstats.c index 27b3d88023..b382f6619d 100644 --- a/drivers/event/opdl/opdl_evdev_xstats.c +++ b/drivers/event/opdl/opdl_evdev_xstats.c @@ -65,7 +65,7 @@ opdl_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size) + uint64_t *ids, unsigned int size) { struct opdl_evdev *device = opdl_pmd_priv(dev); @@ -99,7 +99,7 @@ int opdl_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], + const uint64_t ids[], uint64_t values[], unsigned int n) { struct opdl_evdev *device = opdl_pmd_priv(dev); @@ -133,7 +133,7 @@ opdl_xstats_get(const struct rte_eventdev *dev, uint64_t opdl_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id) + const char *name, uint64_t *id) { struct opdl_evdev *device = opdl_pmd_priv(dev); @@ -161,7 +161,7 @@ opdl_xstats_get_by_name(const struct rte_eventdev *dev, int opdl_xstats_reset(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, - int16_t queue_port_id, const uint32_t ids[], + int16_t queue_port_id, const uint64_t ids[], uint32_t nb_ids) { struct opdl_evdev *device = opdl_pmd_priv(dev); diff --git a/drivers/event/opdl/opdl_test.c b/drivers/event/opdl/opdl_test.c index 3cbe2139ee..b69c4769dc 100644 --- a/drivers/event/opdl/opdl_test.c +++ b/drivers/event/opdl/opdl_test.c @@ -471,7 +471,7 @@ atomic_basic(struct test *t) return 0; } static __rte_always_inline int -check_qid_stats(uint32_t id[], int index) +check_qid_stats(uint64_t id[], int index) { if (index == 0) { @@ -509,7 +509,7 @@ check_statistics(void) 0); if (num_stats > 0) { - uint32_t id[num_stats]; + uint64_t id[num_stats]; struct rte_event_dev_xstats_name names[num_stats]; uint64_t values[num_stats]; diff --git a/drivers/event/sw/sw_evdev.h b/drivers/event/sw/sw_evdev.h index 8542b7d34d..c7b943a72b 100644 --- a/drivers/event/sw/sw_evdev.h +++ b/drivers/event/sw/sw_evdev.h @@ -301,16 +301,16 @@ int sw_xstats_uninit(struct sw_evdev *dev); int sw_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size); + uint64_t *ids, unsigned int size); int sw_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n); + const uint64_t ids[], uint64_t values[], unsigned int n); uint64_t sw_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id); + const char *name, uint64_t *id); int sw_xstats_reset(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids); int test_sw_eventdev(void); diff --git a/drivers/event/sw/sw_evdev_selftest.c b/drivers/event/sw/sw_evdev_selftest.c index ed7ae6a685..62d66744f2 100644 --- a/drivers/event/sw/sw_evdev_selftest.c +++ b/drivers/event/sw/sw_evdev_selftest.c @@ -92,7 +92,7 @@ xstats_print(void) { const uint32_t XSTATS_MAX = 1024; uint32_t i; - uint32_t ids[XSTATS_MAX]; + uint64_t ids[XSTATS_MAX]; uint64_t values[XSTATS_MAX]; struct rte_event_dev_xstats_name xstats_names[XSTATS_MAX]; @@ -310,15 +310,14 @@ static inline int test_event_dev_stats_get(int dev_id, struct test_event_dev_stats *stats) { static uint32_t i; - static uint32_t total_ids[3]; /* rx, tx and drop */ - static uint32_t port_rx_pkts_ids[MAX_PORTS]; - static uint32_t port_rx_dropped_ids[MAX_PORTS]; - static uint32_t port_inflight_ids[MAX_PORTS]; - static uint32_t port_tx_pkts_ids[MAX_PORTS]; - static uint32_t qid_rx_pkts_ids[MAX_QIDS]; - static uint32_t qid_rx_dropped_ids[MAX_QIDS]; - static uint32_t qid_tx_pkts_ids[MAX_QIDS]; - + static uint64_t total_ids[3]; /* rx, tx and drop */ + static uint64_t port_rx_pkts_ids[MAX_PORTS]; + static uint64_t port_rx_dropped_ids[MAX_PORTS]; + static uint64_t port_inflight_ids[MAX_PORTS]; + static uint64_t port_tx_pkts_ids[MAX_PORTS]; + static uint64_t qid_rx_pkts_ids[MAX_QIDS]; + static uint64_t qid_rx_dropped_ids[MAX_QIDS]; + static uint64_t qid_tx_pkts_ids[MAX_QIDS]; stats->rx_pkts = rte_event_dev_xstats_by_name_get(dev_id, "dev_rx", &total_ids[0]); @@ -863,7 +862,7 @@ xstats_tests(struct test *t) const uint32_t XSTATS_MAX = 1024; uint32_t i; - uint32_t ids[XSTATS_MAX]; + uint64_t ids[XSTATS_MAX]; uint64_t values[XSTATS_MAX]; struct rte_event_dev_xstats_name xstats_names[XSTATS_MAX]; @@ -963,11 +962,10 @@ xstats_tests(struct test *t) static const uint64_t expected[] = {3, 3, 0, 1, 0, 0, 4, 1}; for (i = 0; (signed int)i < ret; i++) { if (expected[i] != values[i]) { - printf( - "%d Error xstat %d (id %d) %s : %"PRIu64 - ", expect %"PRIu64"\n", - __LINE__, i, ids[i], xstats_names[i].name, - values[i], expected[i]); + printf("%d Error xstat %d (id %" PRIu64 + ") %s : %" PRIu64 ", expect %" PRIu64 "\n", + __LINE__, i, ids[i], xstats_names[i].name, + values[i], expected[i]); goto fail; } } @@ -982,11 +980,10 @@ xstats_tests(struct test *t) 0, ids, values, num_stats); for (i = 0; (signed int)i < ret; i++) { if (expected_zero[i] != values[i]) { - printf( - "%d Error, xstat %d (id %d) %s : %"PRIu64 - ", expect %"PRIu64"\n", - __LINE__, i, ids[i], xstats_names[i].name, - values[i], expected_zero[i]); + printf("%d Error, xstat %d (id %" PRIu64 + ") %s : %" PRIu64 ", expect %" PRIu64 "\n", + __LINE__, i, ids[i], xstats_names[i].name, + values[i], expected_zero[i]); goto fail; } } @@ -1058,11 +1055,10 @@ xstats_tests(struct test *t) 0, ids, values, num_stats); for (i = 0; (signed int)i < ret; i++) { if (port_expected_zero[i] != values[i]) { - printf( - "%d, Error, xstat %d (id %d) %s : %"PRIu64 - ", expect %"PRIu64"\n", - __LINE__, i, ids[i], xstats_names[i].name, - values[i], port_expected_zero[i]); + printf("%d, Error, xstat %d (id %" PRIu64 + ") %s : %" PRIu64 ", expect %" PRIu64 "\n", + __LINE__, i, ids[i], xstats_names[i].name, + values[i], port_expected_zero[i]); goto fail; } } @@ -1095,11 +1091,10 @@ xstats_tests(struct test *t) }; for (i = 0; (signed int)i < ret; i++) { if (queue_expected[i] != values[i]) { - printf( - "%d, Error, xstat %d (id %d) %s : %"PRIu64 - ", expect %"PRIu64"\n", - __LINE__, i, ids[i], xstats_names[i].name, - values[i], queue_expected[i]); + printf("%d, Error, xstat %d (id %" PRIu64 + ") %s : %" PRIu64 ", expect %" PRIu64 "\n", + __LINE__, i, ids[i], xstats_names[i].name, + values[i], queue_expected[i]); goto fail; } } @@ -1129,11 +1124,10 @@ xstats_tests(struct test *t) int fails = 0; for (i = 0; (signed int)i < ret; i++) { if (queue_expected_zero[i] != values[i]) { - printf( - "%d, Error, xstat %d (id %d) %s : %"PRIu64 - ", expect %"PRIu64"\n", - __LINE__, i, ids[i], xstats_names[i].name, - values[i], queue_expected_zero[i]); + printf("%d, Error, xstat %d (id %" PRIu64 + ") %s : %" PRIu64 ", expect %" PRIu64 "\n", + __LINE__, i, ids[i], xstats_names[i].name, + values[i], queue_expected_zero[i]); fails++; } } @@ -1160,7 +1154,7 @@ xstats_id_abuse_tests(struct test *t) const uint32_t XSTATS_MAX = 1024; const uint32_t link_port = 2; - uint32_t ids[XSTATS_MAX]; + uint64_t ids[XSTATS_MAX]; struct rte_event_dev_xstats_name xstats_names[XSTATS_MAX]; /* Create instance with 4 ports */ @@ -1379,7 +1373,7 @@ xstats_brute_force(struct test *t) { uint32_t i; const uint32_t XSTATS_MAX = 1024; - uint32_t ids[XSTATS_MAX]; + uint64_t ids[XSTATS_MAX]; uint64_t values[XSTATS_MAX]; struct rte_event_dev_xstats_name xstats_names[XSTATS_MAX]; @@ -1454,7 +1448,7 @@ xstats_id_reset_tests(struct test *t) #define XSTATS_MAX 1024 int ret; uint32_t i; - uint32_t ids[XSTATS_MAX]; + uint64_t ids[XSTATS_MAX]; uint64_t values[XSTATS_MAX]; struct rte_event_dev_xstats_name xstats_names[XSTATS_MAX]; @@ -1510,13 +1504,14 @@ xstats_id_reset_tests(struct test *t) }; uint64_t dev_expected[] = {NPKTS, NPKTS, 0, 1, 0, 0, 4, 1}; for (i = 0; (int)i < ret; i++) { - unsigned int id; + uint64_t id; uint64_t val = rte_event_dev_xstats_by_name_get(evdev, dev_names[i], &id); if (id != i) { - printf("%d: %s id incorrect, expected %d got %d\n", - __LINE__, dev_names[i], i, id); + printf("%d: %s id incorrect, expected %d got %" PRIu64 + "\n", + __LINE__, dev_names[i], i, id); goto fail; } if (val != dev_expected[i]) { @@ -1631,20 +1626,20 @@ xstats_id_reset_tests(struct test *t) int failed = 0; for (i = 0; (int)i < ret; i++) { - unsigned int id; + uint64_t id; uint64_t val = rte_event_dev_xstats_by_name_get(evdev, port_names[i], &id); if (id != i + PORT_OFF) { - printf("%d: %s id incorrect, expected %d got %d\n", - __LINE__, port_names[i], i+PORT_OFF, - id); + printf("%d: %s id incorrect, expected %d got %" PRIu64 + "\n", + __LINE__, port_names[i], i + PORT_OFF, id); failed = 1; } if (val != port_expected[i]) { - printf("%d: %s value incorrect, expected %"PRIu64 - " got %d\n", __LINE__, port_names[i], - port_expected[i], id); + printf("%d: %s value incorrect, expected %" PRIu64 + " got %" PRIu64 "\n", + __LINE__, port_names[i], port_expected[i], id); failed = 1; } /* reset to zero */ @@ -1746,14 +1741,14 @@ xstats_id_reset_tests(struct test *t) failed = 0; for (i = 0; (int)i < ret; i++) { - unsigned int id; + uint64_t id; uint64_t val = rte_event_dev_xstats_by_name_get(evdev, queue_names[i], &id); if (id != i + QUEUE_OFF) { - printf("%d: %s id incorrect, expected %d got %d\n", - __LINE__, queue_names[i], i+QUEUE_OFF, - id); + printf("%d: %s id incorrect, expected %d got %" PRIu64 + "\n", + __LINE__, queue_names[i], i + QUEUE_OFF, id); failed = 1; } if (val != queue_expected[i]) { diff --git a/drivers/event/sw/sw_evdev_xstats.c b/drivers/event/sw/sw_evdev_xstats.c index c2647d7da2..fbac8f3ab5 100644 --- a/drivers/event/sw/sw_evdev_xstats.c +++ b/drivers/event/sw/sw_evdev_xstats.c @@ -393,7 +393,7 @@ int sw_xstats_get_names(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size) + uint64_t *ids, unsigned int size) { const struct sw_evdev *sw = sw_pmd_priv_const(dev); unsigned int i; @@ -444,7 +444,7 @@ sw_xstats_get_names(const struct rte_eventdev *dev, static int sw_xstats_update(struct sw_evdev *sw, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, const unsigned int ids[], + uint8_t queue_port_id, const uint64_t ids[], uint64_t values[], unsigned int n, const uint32_t reset, const uint32_t ret_if_n_lt_nstats) { @@ -509,7 +509,7 @@ sw_xstats_update(struct sw_evdev *sw, enum rte_event_dev_xstats_mode mode, int sw_xstats_get(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n) + const uint64_t ids[], uint64_t values[], unsigned int n) { struct sw_evdev *sw = sw_pmd_priv(dev); const uint32_t reset = 0; @@ -520,7 +520,7 @@ sw_xstats_get(const struct rte_eventdev *dev, uint64_t sw_xstats_get_by_name(const struct rte_eventdev *dev, - const char *name, unsigned int *id) + const char *name, uint64_t *id) { const struct sw_evdev *sw = sw_pmd_priv_const(dev); unsigned int i; @@ -556,7 +556,7 @@ sw_xstats_reset_range(struct sw_evdev *sw, uint32_t start, uint32_t num) static int sw_xstats_reset_queue(struct sw_evdev *sw, uint8_t queue_id, - const uint32_t ids[], uint32_t nb_ids) + const uint64_t ids[], uint32_t nb_ids) { const uint32_t reset = 1; const uint32_t ret_n_lt_stats = 0; @@ -577,7 +577,7 @@ sw_xstats_reset_queue(struct sw_evdev *sw, uint8_t queue_id, static int sw_xstats_reset_port(struct sw_evdev *sw, uint8_t port_id, - const uint32_t ids[], uint32_t nb_ids) + const uint64_t ids[], uint32_t nb_ids) { const uint32_t reset = 1; const uint32_t ret_n_lt_stats = 0; @@ -597,12 +597,12 @@ sw_xstats_reset_port(struct sw_evdev *sw, uint8_t port_id, } static int -sw_xstats_reset_dev(struct sw_evdev *sw, const uint32_t ids[], uint32_t nb_ids) +sw_xstats_reset_dev(struct sw_evdev *sw, const uint64_t ids[], uint32_t nb_ids) { uint32_t i; if (ids) { for (i = 0; i < nb_ids; i++) { - uint32_t id = ids[i]; + uint64_t id = ids[i]; if (id >= sw->xstats_count_mode_dev) return -EINVAL; sw_xstats_reset_range(sw, id, 1); @@ -619,7 +619,7 @@ int sw_xstats_reset(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids) { struct sw_evdev *sw = sw_pmd_priv(dev); diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h index e49ff23db5..aebab26852 100644 --- a/lib/eventdev/eventdev_pmd.h +++ b/lib/eventdev/eventdev_pmd.h @@ -529,7 +529,7 @@ typedef void (*eventdev_dump_t)(struct rte_eventdev *dev, FILE *f); */ typedef int (*eventdev_xstats_get_t)(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], uint64_t values[], unsigned int n); + const uint64_t ids[], uint64_t values[], unsigned int n); /** * Resets the statistic values in xstats for the device, based on mode. @@ -537,7 +537,7 @@ typedef int (*eventdev_xstats_get_t)(const struct rte_eventdev *dev, typedef int (*eventdev_xstats_reset_t)(struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids); /** @@ -564,7 +564,7 @@ typedef int (*eventdev_xstats_reset_t)(struct rte_eventdev *dev, typedef int (*eventdev_xstats_get_names_t)(const struct rte_eventdev *dev, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size); + uint64_t *ids, unsigned int size); /** * Get value of one stats and optionally return its id @@ -582,7 +582,7 @@ typedef int (*eventdev_xstats_get_names_t)(const struct rte_eventdev *dev, * if id pointer is non-NULL */ typedef uint64_t (*eventdev_xstats_get_by_name)(const struct rte_eventdev *dev, - const char *name, unsigned int *id); + const char *name, uint64_t *id); /** diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c index 845f8dbb6e..b0414206d9 100644 --- a/lib/eventdev/rte_eventdev.c +++ b/lib/eventdev/rte_eventdev.c @@ -1161,7 +1161,7 @@ int rte_event_dev_xstats_names_get(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, unsigned int size) + uint64_t *ids, unsigned int size) { RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -ENODEV); const int cnt_expected_entries = xstats_get_count(dev_id, mode, @@ -1183,7 +1183,7 @@ rte_event_dev_xstats_names_get(uint8_t dev_id, /* retrieve eventdev extended statistics */ int rte_event_dev_xstats_get(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, - uint8_t queue_port_id, const unsigned int ids[], + uint8_t queue_port_id, const uint64_t ids[], uint64_t values[], unsigned int n) { RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -ENODEV); @@ -1198,11 +1198,11 @@ rte_event_dev_xstats_get(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, uint64_t rte_event_dev_xstats_by_name_get(uint8_t dev_id, const char *name, - unsigned int *id) + uint64_t *id) { RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, 0); const struct rte_eventdev *dev = &rte_eventdevs[dev_id]; - unsigned int temp = -1; + uint64_t temp = -1; if (id != NULL) *id = (unsigned int)-1; @@ -1217,7 +1217,7 @@ rte_event_dev_xstats_by_name_get(uint8_t dev_id, const char *name, int rte_event_dev_xstats_reset(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], uint32_t nb_ids) + const uint64_t ids[], uint32_t nb_ids) { RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL); struct rte_eventdev *dev = &rte_eventdevs[dev_id]; @@ -1658,7 +1658,7 @@ eventdev_build_telemetry_data(int dev_id, struct rte_tel_data *d) { struct rte_event_dev_xstats_name *xstat_names; - unsigned int *ids; + uint64_t *ids; uint64_t *values; int i, ret, num_xstats; diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h index 60e9043ac4..82e8976e57 100644 --- a/lib/eventdev/rte_eventdev.h +++ b/lib/eventdev/rte_eventdev.h @@ -1784,7 +1784,7 @@ rte_event_dev_xstats_names_get(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, struct rte_event_dev_xstats_name *xstats_names, - unsigned int *ids, + uint64_t *ids, unsigned int size); /** @@ -1817,7 +1817,7 @@ int rte_event_dev_xstats_get(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, uint8_t queue_port_id, - const unsigned int ids[], + const uint64_t ids[], uint64_t values[], unsigned int n); /** @@ -1838,7 +1838,7 @@ rte_event_dev_xstats_get(uint8_t dev_id, */ uint64_t rte_event_dev_xstats_by_name_get(uint8_t dev_id, const char *name, - unsigned int *id); + uint64_t *id); /** * Reset the values of the xstats of the selected component in the device. @@ -1864,7 +1864,7 @@ int rte_event_dev_xstats_reset(uint8_t dev_id, enum rte_event_dev_xstats_mode mode, int16_t queue_port_id, - const uint32_t ids[], + const uint64_t ids[], uint32_t nb_ids); /**