eventdev: increase xstats ID width to 64 bits
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>
This commit is contained in:
parent
922e71b52d
commit
1bdfe4d76e
@ -445,6 +445,11 @@ API Changes
|
||||
is renamed to ``rte_eventdev_stop_flush_t``
|
||||
to avoid conflicts with application symbols.
|
||||
|
||||
* eventdev: The data type 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``.
|
||||
|
||||
* metrics: Updated ``rte_metrics_init`` so it returns an error code instead
|
||||
of calling ``rte_exit``.
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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 @@ invalid_value:
|
||||
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);
|
||||
|
@ -686,20 +686,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);
|
||||
|
@ -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 @@ invalid_value:
|
||||
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);
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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];
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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]) {
|
||||
|
@ -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 @@ invalid_value:
|
||||
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);
|
||||
|
@ -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);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user