From: <pbhagavatula@marvell.com>
To: <mb@smartsharesystems.com>, <jerinj@marvell.com>,
<thomas@monjalon.net>, Pavan Nikhilesh <pbhagavatula@marvell.com>,
Shijith Thotton <sthotton@marvell.com>,
Timothy McDaniel <timothy.mcdaniel@intel.com>,
Mattias Ronnblom <mattias.ronnblom@ericsson.com>,
Liang Ma <liangma@liangbit.com>,
Peter Mccarthy <peter.mccarthy@intel.com>,
"Harry van Haaren" <harry.van.haaren@intel.com>
Cc: <dev@dpdk.org>
Subject: [PATCH] eventdev: increase xstats ID width to 64 bits
Date: Thu, 13 Oct 2022 14:53:42 +0530 [thread overview]
Message-ID: <20221013092342.6861-1-pbhagavatula@marvell.com> (raw)
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Increase xstats ID width to 64bits from 32 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>
---
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..2409de6adc 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 ((1UL << 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
next reply other threads:[~2022-10-13 9:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-13 9:23 pbhagavatula [this message]
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
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=20221013092342.6861-1-pbhagavatula@marvell.com \
--to=pbhagavatula@marvell.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=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).