From: Jerin Jacob <jerinjacobk@gmail.com>
To: pbhagavatula@marvell.com
Cc: mb@smartsharesystems.com, jerinj@marvell.com,
thomas@monjalon.net, "Shijith Thotton" <sthotton@marvell.com>,
"Timothy McDaniel" <timothy.mcdaniel@intel.com>,
"Mattias Rönnblom" <mattias.ronnblom@ericsson.com>,
"Liang Ma" <liangma@liangbit.com>,
"Peter Mccarthy" <peter.mccarthy@intel.com>,
"Harry van Haaren" <harry.van.haaren@intel.com>,
dev@dpdk.org
Subject: Re: [PATCH v2] eventdev: increase xstats ID width to 64 bits
Date: Wed, 19 Oct 2022 18:54:38 +0530 [thread overview]
Message-ID: <CALBAE1NmZ9LxU3ceF01a6_=RYhjytZX3uQFwNOWxRed6ePn4Ag@mail.gmail.com> (raw)
In-Reply-To: <20221013113501.7798-1-pbhagavatula@marvell.com>
On Thu, Oct 13, 2022 at 5:05 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> 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 <pbhagavatula@marvell.com>
> Acked-by: Morten Brørup <mb@smartsharesystems.com>
> Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Applied to dpdk-next-net-eventdev/for-main. Thanks
> ---
> 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(-)
>
> 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);
>
> /**
> --
> 2.25.1
>
prev parent reply other threads:[~2022-10-19 13:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-13 9:23 [PATCH] " pbhagavatula
2022-10-13 9:29 ` Morten Brørup
2022-10-13 10:16 ` Mattias Rönnblom
2022-10-13 11:35 ` [PATCH v2] " pbhagavatula
2022-10-19 13:24 ` Jerin Jacob [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALBAE1NmZ9LxU3ceF01a6_=RYhjytZX3uQFwNOWxRed6ePn4Ag@mail.gmail.com' \
--to=jerinjacobk@gmail.com \
--cc=dev@dpdk.org \
--cc=harry.van.haaren@intel.com \
--cc=jerinj@marvell.com \
--cc=liangma@liangbit.com \
--cc=mattias.ronnblom@ericsson.com \
--cc=mb@smartsharesystems.com \
--cc=pbhagavatula@marvell.com \
--cc=peter.mccarthy@intel.com \
--cc=sthotton@marvell.com \
--cc=thomas@monjalon.net \
--cc=timothy.mcdaniel@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).